Eclipse で開発した Android アプリケーションに問題があります。
問題は、次の手順を使用して新しい画像をキャプチャするときです。
Intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(ファイル)); startActivityForResult(意図、TAKE_IMAGE); デバイスはファイルを正しい保存先 (extSdCard) に正しく保存しますが、ディレクトリの内容をリロードすることになっている次のコードは、デバイスが再起動されるまで新しいファイルを見つけられません。
images.clear();
final String[] columns = { MediaStore.Images.Thumbnails._ID };
final String orderBy = MediaStore.Images.Media._ID;
String condition = MediaStore.Images.Media.DATA + " like '%/"+
Singleton.getCurrentPatient().getNrdo()+"/%'";
Cursor imagecursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,
condition, null, orderBy);
if(imagecursor != null){
int image_column_index = imagecursor
.getColumnIndex(MediaStore.Images.Media._ID);
int count = imagecursor.getCount();
for (int i = 0; i < count; i++) {
imagecursor.moveToPosition(i);
int id = imagecursor.getInt(image_column_index);
ImageItem imageItem = new ImageItem();
imageItem.id = id;
lastId = id;
imageItem.img = MediaStore.Images.Thumbnails.getThumbnail(
getApplicationContext().getContentResolver(), id,
MediaStore.Images.Thumbnails.MICRO_KIND, null);
images.add(imageItem);
}
imagecursor.close();
}
notifyDataSetChanged();
}
残念ながら、私は多くの解決策を試しましたが、何もうまくいきません
私は最初にこのコードを使用しました
mScanner = new MediaScannerConnection(
AndroidCustomGalleryActivity.this,new MediaScannerConnection.MediaScannerConnectionClient() {
public void onMediaScannerConnected() {
mScanner.scanFile(imageUri.getPath(), null /* mimeType */);
}
public void onScanCompleted(String path, Uri uri) {
if (path.equals(imageUri.getPath())) {
mScanner.disconnect();
AndroidCustomGalleryActivity.this
.runOnUiThread(new Runnable() {
public void run() {
updateUI();
}
});
}
}
});
mScanner.connect();
imageUri には onMediaScannerConnected メソッドの正しいパスが含まれていますが、onScanCompleted は呼び出されません
写真がキャプチャされた後、それらの指示を試しました
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, imageUri));
updateUI();
繰り返しますが、updateUI メソッドは新しいファイルを検出しません。
私を手伝ってくれますか ?