2016-05-04 5 views
0

を返します。android.provider.MediaStore.Images.Media.insertImageは、私は、コードを次している、ヌル

私は可能な解決策次試してみましたが、運:外部ストレージへの書き込みの許可を確認する

  1. - > OK
  2. は、ディレクトリのチェックを行うようにしてくださいがf.existsであったりません()を返してtrueを返します

何か別の理由が考えられますか?

+0

は<使用許可アンドロイドをのお手伝いをすることができます。name =「android.permission.read_external_storageを」 /> –

+0

私は執筆にWRITE_EXTERNAL_STORAGE権限が暗黙的にこの権限が与えられていることを宣言する 'READアプリも含めるべきだと思った。 – Rendy

+0

Check http://stackoverflow.com/questions/12230942/whyimage-media-insertimage-return- null –

答えて

0
public void addImageToGallery(final String filePath, final Context context) { 

    ContentValues values = new ContentValues(); 

    values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis()); 
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); 
    values.put(MediaStore.MediaColumns.DATA, filePath); 

    context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
} 
0

あなたはGalaxy S6 6.0.1で述べたように、Android Marshmallowでこの問題が発生しています。 これは許可のためです。あなたはMediaStore.Images.Media.insertImageとしてSDカードに書き込むように書き込み権限を要求する必要があります。以下のコードを使用してダイアログを開き :

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

はまた、このリンクはアンドロイド6(マシュマロ)で許可 https://developer.android.com/training/permissions/requesting.html

関連する問題