10

Android のアクセス許可は、Android Mの新しい許可WRITE_EXTERNAL_STORAGEダイアログをREAD_EXTERNAL_STORAGEトリガーしますか?

4

6 に答える 6

10

Guillaume Perrot の回答に同意します。の許可を書いたときに、同様の質問に遭遇しREAD_WRITE_EXTERNAL_STORAGEましたAndroidManifest.xml

targetSdkVersionデフォルトではアプリにアクセス許可が表示されbuild.gradleない23(MNC)ため、ユーザーはアプリのアクセス許可でストレージのトグル ボタンを切り替える必要がありますsdkVersion

もう 1 つの方法はrequestpermission、permisson が必要な場所に関数を記述することです。コードは次のとおりです。

 if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==
    PackageManager.PERMISSION_GRANTED) {
    //do the things} else {
    requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
      AnyNumber);

私の評判は 15 未満なので、Guillaume Perrot の回答に投票することはできません。この方法を使用して、私のアイデアを示してください。

于 2015-10-15T03:07:40.943 に答える
7

Android Mのバージョンを確認する場合、これを追加して解決しました

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
                    requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
            }
于 2016-10-12T15:53:45.543 に答える
2

私の答えは、エミュレーターを使用した M Preview SDK バージョン 2 でのテストに基づいています。

MNCプレビュー API レベルを対象とする場合WRITE_EXTERNAL_STORAGE、既定では付与されず、新しい動的アクセス許可 API の一部になります。

ストレージ権限は、デバイス設定の新しいアプリの権限メニューにトグル ボタンとしてActivity.requestPermissions表示され、その権限のポップアップを表示するために使用できます。

ただし、API レベル < MNC をターゲットにすると、危険なパーミッションとして分類されないため、ユーザーが無効にする方法 (パーミッション設定に表示されない) なしで付与され、次のことができなくなります。プレビュー SDKでは新しい API の使用Activity.requestPermissionsが強制されるため、とにかく使用してコードをコンパイルします。minSdkVersion="MNC"

これは、位置情報のアクセス許可とは異なる動作です。ターゲットとする API レベルが何であれ、ユーザーはアクセス許可メニューで位置情報をオフにすることができます。

パーミッション メニュー自体については、次の場合、デフォルトでパーミッション トグル状態がオンになります。

  • ターゲット API レベル < MNC。
  • ターゲット API レベル = MNC ですが、ターゲット API レベルが MNC 未満であった以前のインストールからデバイス上のアプリをアップグレードします。

それ以外の場合、トグルはデフォルトでオフとして表示されます。

それが役に立てば幸い。

于 2015-08-11T02:50:46.970 に答える
0

ストレージ パーミッションは危険な保護レベルに該当するため、アプリ ターゲット SDK が 23 に設定されている場合、すべての危険な保護レベルのパーミッションは Android M のインストール時に付与されません。それらは実行時に付与されます。はい、これらのアクセス許可は実行時にも取り消すことができます。

許可ダイアログは自動的にトリガーされません。そのネイティブ ダイアログを表示するには、requestPermissions() メソッドなどの API を使用して要求を行う必要があります。

危険レベル許可一覧はこちら

于 2015-09-20T19:08:59.433 に答える