Намерение камеры просто не работает - PullRequest
0 голосов
/ 15 декабря 2011
public class CameraintentActivity extends Activity {

    String _path, sliderpather;
    Button button;
    Intent intent;
    Uri outputFileUri;
    File file;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button = (Button)findViewById(R.id.button1);

        _path = Environment.getExternalStorageDirectory().getName()  + File.separatorChar +  "make_machine_example.jpg";
        file = new File( _path );
        outputFileUri = Uri.fromFile( file );

        intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
        intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );

        button.setOnClickListener(
            new OnClickListener()
            {
                public void onClick(View v)
                {
                    startActivityForResult( intent, 0 );
                }
            }
        );
    }
}

Мне нужно мое приложение, чтобы оно вытягивало камеру, делало снимок и сохраняло изображение в желаемом каталоге, но оно не работает ...

и да, AndroidManifest.xml содержит следующие разрешения

CAMERA WRITE_INTERNAL_STORAGE WRITE_EXTERNAL_STORAGE

Ответы [ 2 ]

0 голосов
/ 19 апреля 2012

Используйте приведенный ниже код для передачи правильного URI активности камеры

File f = new File(Environment.getExternalStorageDirectory(), "hello.jpg");
Uri outputFileUri = Uri.fromFile( f );
intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );        

В настоящее время вы делаете это неправильно. Как подсказал вам @Sean Owen, вы отправляете неправильный URI.

0 голосов
/ 15 декабря 2011

Вы не отправили файл: /// URI для параметра MediaStore.EXTRA_OUTPUT. Вам нужен URI распознавателя контента. Из Javadoc:

"Имя Intent-extra, используемого для обозначения преобразователя контента Uri, который будет использоваться для хранения запрошенного изображения или видео."

Прочтите ContentResolver s, чтобы узнать, как использовать этот механизм для хранения информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...