2016-02-29 11 views
13

私は大学のIT部門で働いており、私たちはeduroam WiFiの正しい設定をインストールするアプリで作業しています。Androidアプリケーションがインストール時にアクセス許可を要求しない

しかし、Android 6.0搭載の自分のLG G4で問題が発生しています。コンパイルされた* .apkをインストールすると、AndroidManifest.xmlに設定されていても、アクセス権は要求されません。以前のすべてのAndroidバージョンで動作していました。

実行時にアクセス許可を求めるのは必須ですか?

+0

あなたのアプリの 'targetSdkVersion'とは何ですか? – CommonsWare

+0

あなたのセキュリティ設定が "unknown sources = false"に設定されている場合にのみそれを行うと思いました。 Playのような既知のソースから何かをインストールすると、そのファイルは表示されません。 – durbnpoisn

+0

私は、AndroidがPlayストアの代わりにapkからインストールするときにAndroidがWi-Fi州の許可を求めないことに気付きました。ここで違いを見ることができます:http://imgur.com/a/rg2IV –

答えて

28

ターゲットSDKのバージョンが23の場合、実行時に「危険な」アクセス権を要求する必要があります。

この場合、Settings > Apps > "Your app" > Permissionsにアクセスすると、アクセス許可が与えられていないことがわかります。

まだ新しいシステムを実装したくない場合は、ターゲットのsdkバージョンを22に減らして古い許可システムを取得することができます。あなたはまだsdkバージョン23でコンパイルすることができます。

詳細については、the documentationを参照してください。

+0

助言ありがとう、私たちはACCESS_WIFI_STATEとCHANGE_WIFI_STATEを使用しますが、危険な権限としてリストされていません。しかし、ターゲットSDKを22に設定しようとします。 –

1

クエスト許可ランタイムにする場合は、アプリに特別なリクエストを書く必要があります。このようなもの:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     createPermissions(); 
} 
public void createPermissions(){ 
    String permission = Manifest.permission.READ_SMS; 
    if (ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED){  
     if(!ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), permission)){ 
       requestPermissions(new String[]{permission}), 
         SMS_PERMISSION); 
     } 
    } 
} 
関連する問題