Subscribed unsubscribe Subscribe Subscribe

GS02の/mnt/sdcard/と/HWUserData/ ではまる。

GS02 (Huawei Honor) でDBを検索すると無いとはじき返される。
一覧を表示させてみると、なんと/mnt/sdcard/に保存したつもりの画像が、/HWUserData/に保存されている。

/mnt/sdcard/ApplicationName/1353822699_after.jpg
/mnt/sdcard/ApplicationName/1353822699_before.jpg
/HWUserData/ApplicationName/1352359123_before.jpg
/HWUserData/ApplicationName/1349065039_before.jpg



そのためコードをつぎの通りに書き換えた。

/*
 * Android 画像のファイル名からIDを取得する関数
 */
public Long getOrigIdFromFilename(String filename){
  // 1)
  String filePath = Environment.getExternalStorageDirectory().getPath()+"/"+context.getString(R.string.app_name)+"/"+filename;
  String selection = MediaStore.Images.Media.DATA + "=" + "'"+filePath+"'";

  // 2) つぎの通り、書き換えた。
  String selection = MediaStore.Images.Media.DATA + " LIKE '%ApplicationName%"+filename+"'";

  String[] proj = {ImageColumns._ID};

  ContentResolver contentResolver = context.getContentResolver();
  Cursor cursor = contentResolver.query(
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
    proj, 
    selection, 
    null, 
    null);

  Log.v("Result", Integer.toString(cursor.getCount()));

  cursor.moveToFirst();

  int column_index = cursor.getColumnIndexOrThrow(ImageColumns._ID);
  return cursor.getLong(column_index);

}
Remove all ads