сделать снимок с камеры Android и отправить его на веб-сервер - PullRequest
1 голос
/ 01 июля 2011

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

Я просто хочу сделать снимок из моих приложений и отправить его на веб-сервер ..

но я не могу найти путь к своему изображению ..

я всегда получаю сообщение об ошибке NullException при попытке получить путь к изображению ..

вот мой код при вызове активности камеры:

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    this.startActivityForResult(camera, PICTURE_RESULT);

и это код результата деятельности:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PICTURE_RESULT){
        if (resultCode == Activity.RESULT_OK) {
            takePicture(data);
        } else if (resultCode == Activity.RESULT_CANCELED) {

        }
    }
}

protected void takePicture(Intent data) {
    Bundle b = data.getExtras();
    pic = (Bitmap) b.get("data");
    if (pic != null) {
        imagePicture.setImageBitmap(pic);
    }
}

что-то не так с моим кодом?

Спасибо

1 Ответ

2 голосов
/ 01 июля 2011

Хорошо, я вижу вашу проблему. Вы не устанавливаете путь для начала. Пожалуйста, посмотрите на этот документ.

http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE

Итак, вы видите, что когда вы вызываете ACTION_IMAGE_CAPTURE, вы не передаете ему дополнительный EXTRA_OUTPUT, который сообщает приложению, где будет храниться изображение. Этот EXTRA_OUTPUT является путем к файлу.

Так прямо под тем, где вы намерены сделать это:

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
URI pictureUri = Uri.fromFile(new File(<path to your file>));
camera.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri);
...