Android 8.1 закрывает активность, когда вызывается startActivityForResult () - PullRequest
0 голосов
/ 23 ноября 2018

кто-то пришел мне на помощь.Я создаю приложение для Android, которое требует сделать снимок с камеры устройства и загрузить миниатюру в ImageView, заметьте, что я не хочу сохранять это изображение, я только хочу загрузить его в ImageView и получить растровое изображение, которое можно нарисовать изImageView позже.

Это то, что я реализовал: Чтобы запустить камеру:

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if(cameraIntent.resolveActivity(activityWeakReference.get().getPackageManager()) != null){
startActivityForResult(cameraIntent, UPLOAD_PICTURE_CAMERA);
}

Ниже onActivityResult(int requestCode, int resultCode, Intent data) вызывается, когда вызывается startActivityForResult():

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK && requestCode == UPLOAD_PICTURE_CAMERA) {
try{
                    Bundle extras = data.getExtras();
                    Bitmap imageBitmap = (Bitmap) extras.get("data");
                    imageViewphoto.setImageBitmap(imageBitmap);

                }catch (Exception e){
                    Log.e(TAG, Utility.stringify(e));
                }
}

Проблема: Приведенный выше код хорошо работает до Android 7.0, но на Oreo 8.1 действие закрывается сразу после открытия камеры, поэтому onActivityResult() не вызывается.

Это все, что я мог получить:

I/PhoneWindow: isNeedChangeStatusBarColor taskInfo: [android.app.ActivityManager$RunningTaskInfo@c7a24ee] size: 1
    isAPPNeedChangeSBColor pkgName: com.a3lineng.softwaredev.freedom_app needKeep: false
    isNeedChangeStatusBarColor false
I/PhoneWindow: isNeedChangeNaviBarColor taskInfo: [android.app.ActivityManager$RunningTaskInfo@5566d8f] size: 1
I/PhoneWindow: isAPPNeedChange pkgName: com.a3lineng.softwaredev.freedom_app needKeep: false
    isNeedChangeNaviBarColor false
    generateLayout mNavigationBarColor: ff000000
I/PhoneWindow: generateLayout isLightNavi false, Visibility: 0
I/zygote: Do full code cache collection, code=505KB, data=398KB
I/zygote: After code cache collection, code=495KB, data=332KB
D/BaseActivity: On Pause is called
I/zygote: Do partial code cache collection, code=505KB, data=341KB
I/zygote: After code cache collection, code=505KB, data=341KB
    Increasing code cache capacity to 2MB
D/BaseActivity: On Stop is called
Disconnected from the target VM, address: 'localhost:8857', transport: 'socket'

Кто сталкивается с той же проблемой в Oreo? Любой совет будет признателен.

1 Ответ

0 голосов
/ 01 апреля 2019

Мне удалось выяснить это в моем случае, я обнаружил, что на устройстве были активированы пользовательские настройки под названием «Убить фоновые действия».Все, что я сделал, это снял флажок, и вызывающее действие было доступно для получения результата от намерения камеры.

Спасибо за помощь.

...