だリセットされます。 ( - 私のアプリで株式カメラで撮影された1、第二)私は、最後の写真2枚を選択するとギャラリーにMediaScanner再挿入写真&それは私のアプリケーションは、写真を作成し、ギャラリーの株式カメラのバケツに挿入する向きや他の分野
ContentValues values = new ContentValues();
values.put(MediaStore.Images.ImageColumns.DATE_TAKEN, taken_at);//msec
values.put(MediaStore.Images.ImageColumns.DATE_ADDED, taken_at/1000);//sec
values.put(MediaStore.Images.ImageColumns.DATE_MODIFIED, taken_at/1000);//sec
values.put(MediaStore.Images.ImageColumns.DISPLAY_NAME, fileName);
values.put(MediaStore.Images.ImageColumns.TITLE, fileName);
values.put(MediaStore.Images.ImageColumns.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.ImageColumns.ORIENTATION, orientation);// << ORIENTATION
values.put(MediaStore.Images.ImageColumns.DATA, dir+"/"+fileName);
uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
OutputStream os = getContentResolver().openOutputStream(uri);
// WRITE JPEG BINARY DATA
:(私は写真が標準のカメラで撮影した他の写真の近くに格納したい)
コードに続いてこれを行います
fields:
_id, bucket_id, date_added, date_modified, datetaken, _display_name,
orientation, title
fields values of photo taken by stock camera:
4471, 856031460, 1323942742, 1323942742, 1323942742189, 2011-12-15 15.52.22.jpg,
90, 2011-12-15 15.52.22.jpg
values of photo taken by my app:
4470, 856031460, 1323942722, 1323942722, 1323942722545, 2011-12-15 15.52.02.jpg
90, 2011-12-15 15.52.02.jpg
をこれまでのところ、とても良い:MediaStore.Images.Media.EXTERNAL_CONTENT_URIから、私は次の取得します。ギャラリーに正しく表示されます。
stock camera's photo after re-mounting sdcard
1241, 856031460, 1323942742, 1323942742, 1323942742189, 2011-12-15 15.52.22.jpg
90, 2011-12-15 15.52.22.jpg
my app's photo after re-mounting sdcard
1242, 856031460, 1323943033, 1323942722, 1323942722000, 2011-12-15 15.52.02.jpg
0, 2011-12-15 15.52.02
// WTF? orientation defaulted, date_added and date_modified were updated
それは、これらの写真のように見えるが再挿入されているが、今私のアプリの写真は、株式しばらく(向きを含む)フィールドのデフォルト値で再挿入されている:私はSDカード再マウントし、メディアスキャナが彼の仕事を終了したときに問題が表示されますカメラの写真の値は変更されませんでした(_idを除く)!
私のアプリの写真は、ストックカメラが正常である間に、間違って(向きがリセットされたため回転しています)ギャラリーに表示されます。
メディアスキャナは、メディアdb内のレコードと現在スキャンしているファイルとの関係をどのように認識しますか?私の場合はそれを行うことができないように見える、古いレコードを削除し、 "存在しないファイルにリンク"し、新しい "前に挿入されていない"レコードを挿入します。
任意のアイデアを、どのようにこの問題を解決するには?
PS:両方の写真は同じディレクトリに配置されている