У меня есть намерение, что при завершении сохраняет изображение в/sdcard/Aperture. Пока изображение сохраняет, оно НЕ отображает изображение сразу же после его сохранения. В чем может быть проблема? Я попытался использовать широковещательную рассылку сканирования в своем отчете «Результат активности», но это приводит к сбою и не сканирует изображение.Проверьте SD-карту после сохранения изображения (Android)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SETTINGS_REQUEST && resultCode == Activity.RESULT_OK) {
MediaFragment content = (MediaFragment) getFragmentManager().findFragmentById(com.marlonjones.aperture.R.id.content_frame);
if (content != null) content.reload();
reloadNavDrawerAlbums();
}
if (requestCode == NEW_PICTURE) {
// return from file upload
if (resultCode == Activity.RESULT_OK) {
Uri uri = null;
if (data != null) {
uri = data.getData();
}
if (uri == null && mCameraFileName != null) {
uri = Uri.fromFile(new File(mCameraFileName));
}
}
}
}
final private int REQUEST_CODE_ASK_PERMISSIONS = 123;
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
public void camera(MenuItem menu) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int hasCameraPermission = checkSelfPermission(Manifest.permission.CAMERA);
if (hasCameraPermission != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA},
REQUEST_CODE_ASK_PERMISSIONS);
return;
}
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
Date date = new Date();
DateFormat df = new SimpleDateFormat("-mm-ss");
String newPicFile = "PH" + df.format(date)+".jpg";
String outPath = "/sdcard/Aperture/" + newPicFile;
File outFile = new File(outPath);
mCameraFileName = outFile.toString();
Uri outuri = Uri.fromFile(outFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outuri);
startActivityForResult(intent, NEW_PICTURE);
}
else{
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
Date date = new Date();
DateFormat df = new SimpleDateFormat("-mm-ss");
String newPicFile = "PH" + df.format(date) + ".jpg";
String outPath = "/sdcard/Aperture/" + newPicFile;
File outFile = new File(outPath);
mCameraFileName = outFile.toString();
Uri outuri = Uri.fromFile(outFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outuri);
startActivityForResult(intent, NEW_PICTURE);}
}
U может проверить есть этот путь –
Я добавил проверку существует, но он все еще не показывал изображение в галерее:/ – MJonesDev
Также пробовал это, что НЕ работало: 'if (data! = Null) { uri = data.getData(); sendBroadcast (новое задание ( ) Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse ("file: //" + Environment.getExternalStorageDirectory()));; ' – MJonesDev