#android-intent #android-camera #androidx #onactivityresult #activity-result-api
Вопрос:
Я использую новый API результатов действий для запуска и выбора изображения из галереи проблема заключается в том, как я могу изменить намерение в новом API результатов действий, чтобы он работал как старый startActivityForResult
Ниже приведен мой старый способ выбора чего-либо из галереи
Intent pickImageIntent = new Intent();
pickImageIntent.setType("image/*");
pickImageIntent.setAction(Intent.ACTION_PICK);
startActivityForResult(pickImageIntent, PICK_IMAGE_FROM_GALLERY_REQUEST_CODE);
Тогда ниже приведен мой старый способ получения результата с помощью onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode,
@Nullable @org.jetbrains.annotations.Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_FROM_GALLERY_REQUEST_CODE) {
if (resultCode == RESULT_OK amp;amp; data != null) {
Uri selectedImageUri = data.getData();
imvImage.setImageURI(selectedImageUri);
} else {
// Show Error Exception Dialog
// We encountered an error while picking your image from gallery
// Try Again, Cancel
}
}
}
Ниже приведен мой новый способ запуска камеры с помощью нового API результатов активности
getImageFromGallery.launch("image/*");
И получение результатов ниже с помощью ActivityResultLauncher
ActivityResultLauncher<String> getImageFromGallery = registerForActivityResult(new ActivityResultContracts.GetContent(),
new ActivityResultCallback<Uri>() {
@Override
public void onActivityResult(Uri uri) {
imvImage.setImageURI(uri);
}
});
Мой вопрос в том, как я могу проанализировать что-то что-то в методе запуска или установить действие в пример намерения
pickImageIntent.setAction(Intent.ACTION_PICK);
к этому
getImageFromGallery.launch("image/*");