私はこれを完全に理解していません。したがって、< = 21 APIバージョンの場合は、許可をリクエストするのにAndroidManifest.xml
を使用することができますが、Lollipop以上のAPIではRequesting permission on runtimeという特長があります。だから私は、このsimpeコードとそれを使用しています:デフォルトで許可が与えられます
if (Build.VERSION.SDK_INT >= 23) {
mPermissionsToBeAsked.clear();
for (String permission : AudioRecordingThread.PERMISSIONS_NEEDED) {
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
mPermissionsToBeAsked.add(permission);
}
} ....
次に、そのリストは、私はそれらを要求してる空でない場合:
if (mPermissionsToBeAsked.size() > 0) {
requestPermissions(mPermissionsToBeAsked.toArray(new String[0]), AUDIO_PERMISSIONS_REQUEST_CODE);
}
をしかし、何らかの理由で、デバイス上で、例えばAndroidの6.0.1のSamsung Galaxy S7、のように、アプリがインストールされたときにデフォルトで許可されたすべての権限。だから私は理由を知りたいのですが、アプリケーションマネージャでアプリケーションに行って、マイクパーミッションを手動で削除すると、checkSelfPermission(permission)
はまだの返品を受けています。だから、質問:
- なぜAPIレベルのロリポップと高いのデバイス上のすべての権限は、まだデフォルトで付与され、コードの上に
mPersmissionToBeAsked
に何も追加しないのだろうか? - アプリケーションマネージャーのタイトルMICROPHONEで手動で権限を削除すると、
checkSelfPermission(android.permission.RECORD_AUDIO)
はまだGRANTEDを返しますか?