androidランタイム権限onRequestPermissionsResultが実行しない問題
1905 ワード
一、Activityで実行しない場合
Activityには requestPermissions() OnRequestPermissionsResult() checkSelfPermission()
この3つの方法ですが、OnRequestPermissionsResultでは空の実装であることがわかりました.
公式に
23バージョン以上のV 4パックを使用します.23以降のバージョンのV 4パッケージには、これらの方法はありません. ActivityCompat.checkSelfPermission() ActivityCompat.requestPermissions() ActivityCompat.OnRequestPermissionsResultCallback ActivityCompat.shouldShowRequestPermissionRationale()
コールバックを取るときにクラスがActivityを継承したらActivity Compat.OnRequestPermissionsResultCallbackというインタフェース.コールバックをもらうことができて、公式の穴かどうか分かりません.メーカーごとに携帯電話も違います.しばらくはこんなにたくさん知っていました.
また、動的に権限を申請する場合は、リストファイルに同時に対応する権限を申請する必要があります.動的に申請したのは、リストファイルを書かなくてもいいという意味ではありません.
二、Fragmentで実行しない場合
Fragmentでランタイム権限を申請する場合はFragmentそのものを使って申請します
Activityで使用するときのコードは次のとおりです.
我々はFragmentで申請する際にActivity CompatではなくFragment自体を使用します.コードは以下の通りです.
Activityには
この3つの方法ですが、OnRequestPermissionsResultでは空の実装であることがわかりました.
公式に
/*nothing*/
と書いてあります23バージョン以上のV 4パックを使用します.23以降のバージョンのV 4パッケージには、これらの方法はありません.
コールバックを取るときにクラスがActivityを継承したらActivity Compat.OnRequestPermissionsResultCallbackというインタフェース.コールバックをもらうことができて、公式の穴かどうか分かりません.メーカーごとに携帯電話も違います.しばらくはこんなにたくさん知っていました.
また、動的に権限を申請する場合は、リストファイルに同時に対応する権限を申請する必要があります.動的に申請したのは、リストファイルを書かなくてもいいという意味ではありません.
二、Fragmentで実行しない場合
Fragmentでランタイム権限を申請する場合はFragmentそのものを使って申請します
Activityで使用するときのコードは次のとおりです.
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);
我々はFragmentで申請する際にActivity CompatではなくFragment自体を使用します.コードは以下の通りです.
HomeFragment.this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);