Я использую камеру из Android в своем приложении ...... мое требование: я захватываю живое изображение и сохраняю его на месте, которое я решил не в камере папку из галереи. А затем выборка фотографий с помощью Uri и отображение их в моем приложении.Камера для Android: странное поведение при сохранении изображения с камеры
Но то, что я реализовал, работает правильно на каком-то устройстве, а на некоторых устройствах мой код не смог создать папку и захваченное изображение .... поэтому я ничего не получаю, когда мое приложение хочет отображать фотографии.
Я пробовал свое приложение на Galaxy S и Galaxy SII .... На галактике S он не работает должным образом, и странно, что некоторые устройства SII работают нормально, но некоторые не могут создать изображение и папку в указанном месте. Но на Galaxy Tab все работает нормально.
Также я тестировал его на Nexus S .... здесь проблема в чем-то отличается, на Nexus S, когда я запускаю камеру и захватываю изображение, после чего я могу видеть предварительный просмотр изображения, и там у меня есть 2 варианта сохранения, отменять или возвращать .... но когда я прошу ничего не сохранять, и когда я отменяю его, вы освобождаете камеру, и за ее работу, как она была разработана.
Я не понимаю, почему есть разные результаты на разных устройствах .... даже устройства от того же производителя (например, Galaxy SII)
Я отправляю мой код ... если кто-то есть намек, пожалуйста, поделитесь им с я ... Спасибо.
public static String EXTERNAL_STORAGE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath().toString()+"/DCIM/";
private String imagePath = ImageDecoder.EXTERNAL_STORAGE_PATH;
imagePath = imagePath + projectdata.getProjectName().toString().trim() + "/"
+ System.currentTimeMillis() + ".jpg";
File imageFile = new File(imagePath);
Uri imageFileUri = Uri.fromFile(imageFile);
Intent captureImage = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
captureImage.putExtra(MediaStore.EXTRA_OUTPUT, imageFileUri);
startActivityForResult(captureImage, CAMERA_PIC_REQUEST);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String imgDescription = null;
switch (requestCode) {
case CAMERA_PIC_REQUEST:
if (resultCode == RESULT_OK) {
cam = new Controller_Camera(context, sessiondata, projectdata);
imgDescription = getString(R.string.DEFAULT_IMAGE_TITLE) + DateTimeUtility.GetSystemDate();
String response = cam.savePhotoWithIssue(imagePath, app, imgDescription,
getString(R.string.DEFAULT_ISSUE_NAME), getString(R.string.DEFAULT_IMAGE_TITLE));
if (response == "Successfull") {
Intent issueeditor = new Intent(context, IssueEditor.class);
issueeditor.putExtra("TODO", "editissue");
issueeditor.putExtra("TAB", "Photos");
issueeditor.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(issueeditor);
} else {
Toast.makeText(context, getResources().getString(R.string.FAILURE_SAVING), Toast.LENGTH_SHORT)
.show();
}
}
break;