nguyenhoanglam / ImagePicker

A customizable library for selecting images on the device.
Apache License 2.0
598 stars 158 forks source link

Permission Camera Problems on Android 31 and up #148

Closed ZoeVale closed 12 months ago

ZoeVale commented 1 year ago

Thanks for you job. I love your library, but there's a problem:

If i accept grant permissions from pop up and then i disable camera permission from settings, the app can open photo Library but if i touch on camera button the app crash. See log please:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.android.camera2/com.android.camera.CaptureActivity clip={text/uri-list hasLabel(0) {U(content)}} (has extras) } from ProcessRecord{872f81c 3209:com.zoe.symmetry/u0a146} (pid=3209, uid=10146) with revoked permission android.permission.CAMERA at android.os.Parcel.createExceptionOrNull(Parcel.java:2425) at android.os.Parcel.createException(Parcel.java:2409) at android.os.Parcel.readException(Parcel.java:2392) at android.os.Parcel.readException(Parcel.java:2334) at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:2284) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1743) at android.app.Activity.startActivityForResult(Activity.java:5404) at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:712) at androidx.core.app.ActivityCompat$Api16Impl.startActivityForResult(ActivityCompat.java:809) at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:246) at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:237) at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:175) at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.captureImage(ImagePickerActivity.kt:247) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.captureImageWithPermission(ImagePickerActivity.kt:196) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.cameraClickListener$lambda-1(ImagePickerActivity.kt:40) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.$r8$lambda$xyOfBZ_cPaa5y_CJIFuNNkilMSg(Unknown Source:0) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity$$ExternalSyntheticLambda2.onClick(Unknown Source:2) at android.view.View.performClick(View.java:7441) at android.view.View.performClickInternal(View.java:7418) at android.view.View.access$3700(View.java:835) at android.view.View$PerformClick.run(View.java:28676) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) Caused by: android.os.RemoteException: Remote stack trace: at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1047) at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:975) at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:665) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1201) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1173)

Thanks in advanced ;-)

nguyenhoanglam commented 1 year ago

@ZoeVale which android version are you using?

ZoeVale commented 1 year ago

Hi @nguyenhoanglam , I Use 2 devices (android 31 and android 33)

This is my grade

android { compileSdkVersion 33

defaultConfig {
    applicationId "XXXXXXXXX"
    minSdkVersion 26
    targetSdkVersion 33
   ----

.... }

zoelounge commented 1 year ago

Hello, the problem return ....

Fatal Exception: java.lang.SecurityException Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.sec.android.app.camera/.Camera clip={text/uri-list hasLabel(0) {U(content)}} (has extras) } from ProcessRecord{c3846f 21661:com.zoe.symmetry/u0a904} (pid=21661, uid=10904) with revoked permission android.permission.CAMERA.

Fatal Exception: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.sec.android.app.camera/.Camera clip={text/uri-list hasLabel(0) {U(content)}} (has extras) } from ProcessRecord{c3846f 21661:com.zoe.symmetry/u0a904} (pid=21661, uid=10904) with revoked permission android.permission.CAMERA at android.os.Parcel.createExceptionOrNull(Parcel.java:2438) at android.os.Parcel.createException(Parcel.java:2422) at android.os.Parcel.readException(Parcel.java:2405) at android.os.Parcel.readException(Parcel.java:2347) at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:2897) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1743) at android.app.Activity.startActivityForResult(Activity.java:5473) at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:754) at androidx.core.app.ActivityCompat$Api16Impl.startActivityForResult(ActivityCompat.java:860) at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:249) at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:258) at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:175) at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.captureImage(ImagePickerActivity.kt:265) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.captureImageWithPermission(ImagePickerActivity.kt:214) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.cameraClickListener$lambda$1(ImagePickerActivity.kt:41) at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity.$r8$lambda$qO4r6Z0DFDVmhKIru8jddgZt65w() at com.nguyenhoanglam.imagepicker.ui.imagepicker.ImagePickerActivity$$ExternalSyntheticLambda2.onClick(:2) at android.view.View.performClick(View.java:7792) at android.view.View.performClickInternal(View.java:7769) at android.view.View.access$3800(View.java:910) at android.view.View$PerformClick.run(View.java:30218) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:226) at android.os.Looper.loop(Looper.java:313) at android.app.ActivityThread.main(ActivityThread.java:8751) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Remote stack trace: at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1334) at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1275) at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:906) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1886) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1757)

Caused by android.os.RemoteException: Remote stack trace: at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1334) at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1275) at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:906) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1886) at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1757)

Dispositivo Brand:Samsung Modello:Galaxy M31 Orientamento:Verticale RAM disponibile: 2.42 GB Spazio libero su disco: 992.11 MB Sistema operativo Versione:Android 12 Orientamento:Verticale Con accessi di amministratore:No Arresto anomalo Data:23 lug 2023, 16:25:13 Versione app:3.2.2.7 (3227)

nguyenhoanglam commented 1 year ago

@zoelounge @ZoeVale Please upgrade to v1.6.1 to check if the bug is fixed. Also, help me play around with new config options and let me know if you found a Thank guys!

zoelounge commented 1 year ago

Ok. Thanks for all. That's all right