2017-07-22 1 views
1

私のアンドロイドアプリケーション(minSdkVersio n 15)では、ディレクトリを作成してファイルを書き込む必要があります。私のAppManifestでは、私が使用しています:権限が許可または拒否された場合android ContextCompat.checkSelfPermissionは常にPERMISSION_GRANTEDを返します

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

ディレクトリまたはファイルを作成する前に、私は

boolean isAllow = ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; 

しかしとして、チェックしています常にまたはPERMISSIが返されます。 >アプリ - - 誰かが設定から許可を拒否した場合でも、をON_GRANTED>権限

Deny Permission

なぜcheckSelfPermissionは常にPERMISSION_GRANTEDを返していますか?許可が拒否されているかどうかを確認する方法はありますか?

は、私が使用している権限を起動するには、次の

ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); 

をしかし、その許可が対話を示していません?

答えて

2

保護レベルが危険な新しいアクセス許可モデルのアクセス許可は、実行時アクセス許可です。 M以上のアプリを対象とするアプリでは、そのような権限を与えたり、いつでも取り消すことはできません。アプリがMarshmallow(< 23)より低いAPIの場合、これらのアクセス許可は常にに許可されます。そのようなアプリは許可の取り消しを期待せず、クラッシュします。したがって、ユーザーがUIでレガシーアプリケーションのアクセス許可を無効にすると、プラットフォームはこのアクセス許可で保護されているAPIを無効にし、何もしないか、空の結果またはデフォルトエラーを返すことになります。許可は、私はちょうどトーストメッセージにしたいその後、拒否された場合にはより多くの情報訪問PermissionChecker

+0

ため

:「許可が拒否されました、[設定]に移動してください - > Apps->のアクセス許可、および設定を許可」、それをどのように行うには? – Admin

+1

あなたのtagertのvirsionがgrateerより23であればマシュマロより低いAPI(<23)で、それは –

+1

のためのアンドロイドドキュメントを読んでくださいことはできません?? –

関連する問題