保存した内容を本体に認識をさせる。

お絵かきアプリで書いた絵を保存する。で生成した画像のファイルですが、ファイル管理ツールなどで、保存が確認できるのですが、ギャラリーなどで、表示がされない。一度再起動などすると、確認が出来る。と言った現象が起こります。

今回はこの保存の問題に関して解決をしたいと思います。

アプリから撮影した写真画像が、ギャラリーから見れない

では、

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()));

上記でメディアスキャンを呼び出してくれるようです。(すいません、この方法は未確認です。)

Broadcast Intent 一覧

問題点:これだとメディアスキャンを全体に実行をするので、時間がかかるようです。

 

アプリから撮影した写真画像が、ギャラリーから見れない

ContentValues values = new ContentValues();
ContentResolver contentResolver = getContentResolver();
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Images.Media.LATITUDE, loc.getLatitude());
values.put(Images.Media.LONGITUDE, loc.getLongitude());
values.put(Images.Media.TITLE, fileName);  // タイトル名(ファイル名にしてます)
values.put("_data", filePath); // 画像の保存されたフルパス
contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);

僕の作った方では【Media.EXTERNAL_CONTENT_URI】が正確に動作をしてくれなくて【MediaStore.Images.Media.EXTERNAL_CONTENT_URI】だと正確に認識してくれました。

参照:http://labs.techfirm.co.jp/android/cho/2118

この方法は、使っているfunctionの推定なんですが、アンドロイドアプリの画像管理などのデータベースに直接書き込んでいるような印象です。

でここまででかなりまとまっては来たのですが、上書きをした場合に、そのギャラリーなどの表示が更新されない。という、問題にぶち当たります。

insertだけでなく、contentResolver.delete,contentResolver.updateなどの関数を用いても更新はされません。

上書き処理を行うには、次の方法で現在のデータを一度消してから、insertをする必要があります。

画像更新処理に関して

File saveFile = new File(path);
if(saveFile.exists()) {
 String[] proj = {MediaStore.Images.Media._ID,MediaStore.Images.Media.DATA};
 Cursor cursor = activity.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,proj,MediaStore.Images.Media.DATA + " = ?",new String[] { path },null);
 if(cursor.getCount() != 0) {
 cursor.moveToFirst();
 Uri deleteUri = ContentUris.appendId(
 MediaStore.Images.Media.EXTERNAL_CONTENT_URI.buildUpon(),
 cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media._ID))).build();
 activity.getContentResolver().delete(delete, null, null);
 }
}

以上で上書きの処理ができました。

ですが、ユーザーがこのアプリで上書きをする必要性がなければ、同じ名前を回避してあげる(アラートで他の名前に変えさせる・ランダムな名前)で解決をした方がよいような気がします。

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑