Android Samsung: приложение камеры не возвращает intent.getData ()

Я разрабатываю приложение, в котором изображение взято из собственного приложения камеры. должен быть показан пользователю. Код, который я сделал:

/* Intent */
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, TAKE_PICTURE);

/* Result */
onActivityResult(int requestCode, int resultCode,
        Intent returnIntent) {
    if(requestCode == TAKE_PICTURE) {
        //picture from Camera
        if (resultCode == Activity.RESULT_OK) {
            if(returnIntent != null) {
                try {
                    // Get the file path where the image is stored.
                    // This runs fine on all devices, except Samsung ones.
                    Uri selectedImage = returnIntent.getData();

                    if(selectedImage == null) {
                        if(returnIntent.getExtras() != null &&
                            returnIntent.getExtras().get(AppConstants.DATA) != null) {

                            // But, I get the image Bitmap here. Means the image is stored in disk.
                            Bitmap bmp = (Bitmap) returnIntent.getExtras().get(AppConstants.DATA);
                        }
                    }
                } catch (Exception e) {
                    //
                }
            }
        }
    }
}

Проблема в том, что приведенный выше код отлично работает на всех устройствах, которые я пробовал (HTC, SE), но почему-то не работает на устройствах Samsung. "Uri selectedImage = returnIntent.getData ();" никогда ничего не возвращает. Поскольку все мое приложение построено на этой логике хранения пути к файлу, я не могу продолжить. Есть какое решение люди.

8
задан Janusz 28 March 2012 в 12:51
поделиться