2016-11-10 21 views
-1

私は私は、Android Studioのギャラリーに電話しましたが、私はエラーを取得していますBitmap写真を追加しよう:保存写真

Failed to insert image 
    java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=4110, uid=10058 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission() 

私はマニフェストXMLで使用している:

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

私は画像を保存する方法は次のとおりです。

MediaStore.Images.Media.insertImage(getContentResolver(), FullBitmap, "Name" , "Date"); 

私はネクサス5エミュレータとアンを使用していますドロイドバージョン5.1。

+0

あなたはAndroid 5.1で、6.0ではないですか?あなたはマシュマロから始めるだけで個別に許可を拒否することができます –

+2

アンドロイド:maxSdkVersion = "21" 'なぜ?あなたのデバイスはAPI 22です。 – njzk2

答えて

2

@ njzk2に指摘されているように、android:maxSdkVersion属性を使用しないでください。この属性は、上位のAPIレベルでは不要になったアクセス許可を対象としています。ドキュメントに記載されている例は、この属性を適用する必要がある理由の1つです。

For example, beginning with Android 4.4 (API level 19), it's no longer necessary for your app to request the WRITE_EXTERNAL_STORAGE permission when your app wants to write to its own application-specific directories on external storage (the directories provided by getExternalFilesDir()). However, the permission is required for API level 18 and lower.

あなたの場合、パブリックディレクトリにアクセスしています。あなたのためにdoはすべてのAPIレベルについての許可WRITE_EXTERNAL_STORAGEの許可が必要です。

関連する問題