私のアプリケーションには5つのアクセス権が必要です。アプリはそれだけで最初に許可し、残りないために尋ねる実行するとAndroid:複数のアクセス権を要求する場合、最初のアクセス権のみが要求されます。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 2);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.CAMERA}, 3);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.GET_ACCOUNTS}, 4);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{android.Manifest.permission.READ_CONTACTS}, 5);
}
}
:これは私が私の活動の1ののonCreate()に追加したコードです。 私はまた、要求権限関数の配列としてすべての権限を提供しましたが、最初の権限のポップアップも表示されています。
助けてもらえますか?私は私のターゲットとSDKのバージョンをコンパイルするには、26
必要なすべてのアクセス権の単一の 'String []'で 'requestPermissions()'を1回呼び出します。 'String []'をカスタマイズして、必要なパーミッションだけを持つようにしてください。 [このサンプルアプリケーション](https://github.com/commonsguy/cw-omnibus/tree/v8.6/Permissions/tutorial/finish/RuntimePermTutorial)を参照してください。 – CommonsWare
既に同じ問題が見られましたが、私は質問 – Sid
でそれを言及しました。おそらくあなたはそれを間違ったのでしょうか、あるいは既にあなたはすでに他の権限を持っています。このサンプルアプリケーション(https://github.com/commonsguy/cw-omnibus/tree/v8.6/Permissions/tutorial/finish/RuntimePermTutorial)、[このサンプルアプリケーション](https:// github .com/commonsguy/cw-omnibus/tree/v8.6/Media/AudioRecording)、私は問題なく複数の権限を要求します。 – CommonsWare