2016-04-05 24 views
2

私はこのようなAPI 23で上記の許可をチェックしようとしている:ランタイムパーミッションチェックのAPI 23+:シンボルを解決できません「Manifest.permission.READ_EXTERNAL_STORAGE」

int result = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE); 

をしかし、それはManifest.permission.READ_EXTERNAL_STORAGEを見つけることができません。

私のマニフェストに許可を次のように設定されているので、これは次のとおりです。

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

は、だから私はこれにそれを変更し、今では動作します:

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

あなたがチェックするuses-permissionを使用することはできません実行時のアクセス許可私のすべてのuses-permissionpermissionに変更する必要がありますか?

編集:私は、Android Studioで取得していますエラーは次のとおりです。

は、シンボルを解決できません 'READ_EXTERNAL_STORAGE'

+1

いいえ、 'uses-permission'は正しいタグです。あなたは「それを見つけることができないのですか? – DeeV

+0

@DeeV Androidスタジオでインラインエラーが発生する「READ_EXTERNAL_STORAGE 'のシンボルを解決できません」 – Micro

+0

Javaまたはマニフェストでは?定数への参照が見つからないということは私には意味がありません。 – DeeV

答えて

12

[OK]を私はこの問題は何であったかを考え出し:

私が使っていました

int result = ContextCompat.checkSelfPermission(this, com.mypackage.myapp.Manifest.permission.READ_EXTERNAL_STORAGE); 

私が必要としたのは:

int result = ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE); 

Android Studioで自動インポートを使用しているように見えるのは悪い考えです。

+0

はい。これは、間違ったマニフェストクラスをインポートしていた場合に問題になりますが、なぜアプリケーションにマニフェストクラスがあるのでしょうか? – DeeV

+0

@DeeVよくマニフェストは私のアプリケーションマニフェストのように私のマニフェストです。なぜ私はそれを持っていないだろう..?すべてのAndroidアプリは... – Micro

+0

必ずしもそうではありません。カスタムパーミッションや権限グループのようなものを作成する必要があります(これは ''が働いている理由です)。 – DeeV

-1

これは私が前にそれをやった方法です:私は、私は数1337を使用している、と私は、これは任意の数の可能性を前提とする理由私は覚えてあなたに言った場合、私はあなたに嘘をつくでしょう

// inside my class 
private static final String[] INITIAL_PERMS = {Manifest.permission.READ_EXTERNAL_STORAGE}; 
private static final int REQUEST = 1337; 

// inside a method 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) 
{ 
    requestPermissions(INITIAL_PERMS, REQUEST); 
} 

しかし、私は数ヶ月前にこれを設定し、それを再び変更したことはありません。

+0

これは良い例ですが、実際に問題に対処していません。 –

関連する問題