TedImagePicker icon indicating copy to clipboard operation
TedImagePicker copied to clipboard

Click on Camera Tile throw Security Exception

Open ibnekhan opened this issue 4 years ago • 1 comments

First time only ask permissions for storage to show images and when click on camera tile it doesn't ask about camera permissions and crash with security permission exception.

I've inserted all permissions into manifest. API LEVEL 29

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gun0912.tedonactivityresult.ProxyActivity}: 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 U:content://media/external/images/media/42} (has extras) } from ProcessRecord{70f28f2 2912:/u0a169} (pid=2912, uid=10169) with revoked permission android.permission.CAMERA

USAGE

 TedImagePicker.with(CreateAdPost.this).image().showCameraTile(true)
                    .selectedUri(galleryPaths).startMultiImage(new OnMultiSelectedListener() {
                @Override
                public void onSelected(@NotNull List<? extends Uri> list) {
    
                }
            });

ibnekhan avatar Sep 24 '20 08:09 ibnekhan

I had same issue and solved by adding camera permission code.

First, need camera permission code inside MANIFEST file.

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="true" />

Then, before using TedImagePicker, check CAMERA permission is not denied. (I used TedPermission library)

if ( hasPermission(this, Manifest.permission.CAMERA)) {
                TedImagePicker.with(this)
                    .startMultiImage { uriList ->
                            
                    }
            } else {
                TedPermission.with(this)
                    .setPermissionListener(object: PermissionListener {
                        override fun onPermissionGranted() {
                            TedImagePicker.with(this@MainActivity)
                                .startMultiImage { uriList ->
  
                                }
                        }

                        override fun onPermissionDenied(deniedPermissions: MutableList<String>?) {
                            Dlog.e("ON PERMISSION DENIED")
                        }
                    })
                    .setDeniedMessage("PERMISSION DENIED MESSAGE")
                    .setPermissions(Manifest.permission.CAMERA)
                    .check()
            }

og721 avatar Nov 02 '20 02:11 og721