#java #android #camera #gallery
#java #Android #камера #Галерея
Вопрос:
Хорошо, мы используем некоторый код для открытия галереи и камеры на устройствах Android, пользователи выбирают фотографию, и она загружается как обычно.
Но на некоторых телефонах это не работает, например, на телефоне Nokia 2.2.
private void takeCameraImage() {
Dexter.withActivity(getActivity())
.withPermissions(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)
.withListener(new MultiplePermissionsListener() {
@Override
public void onPermissionsChecked(MultiplePermissionsReport report) {
if (report.areAllPermissionsGranted()) {
Intent pictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file;
try {
file = getImageFile(); // 1
} catch (Exception e) {
e.printStackTrace();
Log.e("exception","==" e.getMessage() " " e.getLocalizedMessage());
return;
}
Uri uri;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) // 2
uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID.concat(".provider"), file);
else
uri = Uri.fromFile(file); // 3
pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); // 4
startActivityForResult(pictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
@Override
public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
token.continuePermissionRequest();
}
}).check();
}
Это код, который разработчик говорит, что он использует на Java. Кто-нибудь может понять, почему это работает на некоторых телефонах, а не на других?
Комментарии:
1.
file = getImageFile();
? Код не опубликован.2. Это будет зависеть от версии телефона Android.
3. Но на некоторых телефонах это «не работает», например, на телефоне Nokia 2.2.