2016-05-30 12 views
2

ことなく、外部記憶装置への書き込み:私は、Android 6.0用アプリ構築していますアプリケーションは、私は次のアクセス許可を使用してアプリを持っている許可

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

を:私は今、アプリを起動すると

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "de.my.package" 
     minSdkVersion 14 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

をし、外部ストレージへの書き込み許可を設定していない場合でも、Android 6.0搭載のNexus 5のアクセス許可を尋ねられることはありません。

許可なく外部ストレージに書き込むことができますか?あなたはユーザーのみの壮大な場合は、実行時に、あなたが方法をonRequestPermissionsResultオーバーライドする必要があり、この

if (ContextCompat.checkSelfPermission(thisActivity, 
                Manifest.permission.WRITE_EXTERNAL_STORAGE) 
        != PackageManager.PERMISSION_GRANTED) { 

     //request for the permission 
        ActivityCompat.requestPermissions(thisActivity, 
                new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
                MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); 

        // MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE is an 
        // app-defined int constant. The callback method gets the 
        // result of the request. 
    
} 

などの許可を求めることができWRITE_EXTERNAL_STORAGE

のような操作を行うことができます許可を許可を依頼する必要がありマシュマロで

+0

アプリケーションは外部ストレージに書き込みません(アプリケーションがext.storageに何かを書いているかどうかを確認する必要があります)。また、あなた自身が要求するまでアクセス権を要求しません。 –

+0

ofcourseもしそれを強いられないのか尋ねることはありません。しかし、アプリケーションは、彼女がやっていないものが不足しているため、例外をスローします。はい。 Appは実際に外部ストレージに書き込んでいます。私はそれを確認した。 – Mulgard

+0

おそらく、あなたのクラスの文 –

答えて

3

許可を確認することは盛大であるかどうか

@Override 
     public void onRequestPermissionsResult(int requestCode, 
             String permissions[], int[] grantResults) { 
         switch (requestCode) { 
             case MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: { 
                 // If request is cancelled, the result arrays are empty. 
                 if (grantResults.length > 0 
                     && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

                     // permission was granted, yay! Do the 
                     // write to external strage operations here 

                 } else { 

                     // permission denied, boo! Disable the 
                     // functionality that depends on this permission. 
         /*You can forcefully again ask for the permissions to the user here but it is a bad practice*/ 
                 } 
                 return; 
             } 

             // other 'case' lines to check for other 
             // permissions this app might request 
         } 
     } 

私はユーザーが譲らないあなたは許可を得ることができません。
の場合は、アプリのレベルのGradleで23から22にターゲットSDKのバージョンを変更マシュマロで許可を求めてとgrandingせずにアプリケーションを実行したいのですが、この場合、あなたはマシュマロの機能を得ることができなくなります。

+0

ありがとうございましたが、私はすでにそれを知っています。今の問題は、アプリが許可を得ずに外部ストレージに書き込むことができることです。 – Mulgard

+0

ユーザーがREAD_EXTERNAL_STORAGE権限を許可している場合、WRITE_EXTERNAL_STORAGE.isに対して再度尋ねることはありません。 –

+0

いいえ、そうではありません。私は許可グループについて知っています。 – Mulgard

関連する問題