Скорее всего, эти две проблемы связаны с тем, как вы создаете ссылку на файл, который передается на камеру.Если вы хотите, чтобы файл изображения был сохранен на SD-карту, вам нужно создать ссылку на файл, которая включает полный путь к этому местоположению, а не просто имя файла.Например, этот код сохранит файл изображения в корне SD-карты:
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File image = new File(Environment.getExternalStorageDirectory(),"TeamImage.jpg");
camera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(image));
startActivityForResult(camera, PICTURE_RESULT);
Я также изменил ваше имя файла, чтобы не включать пробел;только потому, что я не уверен, что приложение Camera не взорвется и на этой части.Поскольку камера запутывается, пытаясь открыть и записать местоположение вашего файла, вероятно, вы всегда возвращаетесь с RESULT_CANCELED
.Вам не нужно разрешение WRITE_EXTERNAL_STORAGE, поскольку приложение Camera осуществляет доступ к SD-карте.
Еще одно замечание: я не верю, что другие дополнения MediaStore могут быть переданы с этим намерением.Как правило, если вы хотите, чтобы метаданные были прикреплены к вашему изображению, вы должны вставить ссылку Uri с этими метаданными в MediaStore ContentProvider перед сохранением изображения на диск.
Надеюсь, это поможет!