Я создаю приложение в Android Studio для своего университетского класса.Он запрашивает загрузку изображений с моего устройства, и я думал о том, чтобы попытаться сделать также фотографии с камеры.Я должен использовать только Android Studio Emulator, а не реальное устройство, поэтому я не уверен, что смогу это сделать.
Я решил так:
Integer REQUEST_CAMERA = 1;
[...]
button_scatta.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CAMERA);
}
});
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK){
if (requestCode == REQUEST_CAMERA) {
Bundle bundle = data.getExtras();
final Bitmap bmp = (Bitmap) bundle.get("data");
ivImage.setImageBitmap(bmp);
}[...]
}
}
Манифест имеетследующие разрешения на использование:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
У меня была эта ошибка безопасности: java.lang.SecurityException: Отказ в разрешении: запуск Intent {act = android.media.action.IMAGE_CAPTURE cmp = com.android.camera2 /com.android.camera.CaptureActivity} из ProcessRecord {6d2a42a 7516: com.example.punta.geopost / u0a85} (pid = 7516, uid = 10085) с аннулированным разрешением android.permission.CAMERA