cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard B Knoll (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-9910) Android permission error for gallery images with target height/width
Date Fri, 30 Oct 2015 21:35:27 GMT

    [ https://issues.apache.org/jira/browse/CB-9910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14983373#comment-14983373
] 

Richard B Knoll commented on CB-9910:
-------------------------------------

The issue is that in order to get the real file path for the content URIs, we query the external
media ContentProvider which requires read permission. We use that to get the filename for
when we output our image.

> Android permission error for gallery images with target height/width
> --------------------------------------------------------------------
>
>                 Key: CB-9910
>                 URL: https://issues.apache.org/jira/browse/CB-9910
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Camera
>         Environment: Android 6.0.0 Marshmallow on a Nexus 6, cordova-android 5.0.0 (master),
cordova-plugin-camera 1.2.1 (master)
>            Reporter: Richard B Knoll
>            Assignee: Richard B Knoll
>            Priority: Critical
>              Labels: android
>
> When you request an image from the PHOTOLIBRARY source in Android, if you set targetHeight
and targetWidth you get a SecurityException for not requesting READ_EXTERNAL_STORAGE. Stack
trace:
> {code}
>  java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider
uri content://media/external/images/media from pid=5306, uid=10185 requires android.permission.READ_EXTERNAL_STORAGE,
or grantUriPermission()
>          at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:605)
>          at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:480)
>          at android.content.ContentProvider$Transport.query(ContentProvider.java:211)
>          at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
>          at android.os.Binder.execTransact(Binder.java:453)
>  java.io.FileNotFoundException: /storage/emulated/0/Android/data/io.cordova.hellocordova/cache:
open failed: ENOENT (No such file or directory)
>     at libcore.io.IoBridge.open(IoBridge.java:452)
>     at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
>     at java.io.FileOutputStream.<init>(FileOutputStream.java:127)
>     at java.io.FileOutputStream.<init>(FileOutputStream.java:116)
>     at org.apache.cordova.camera.CameraLauncher.ouputModifiedBitmap(CameraLauncher.java:549)
>     at org.apache.cordova.camera.CameraLauncher.processResultFromGallery(CameraLauncher.java:669)
>     at org.apache.cordova.camera.CameraLauncher.access$000(CameraLauncher.java:66)
>     at org.apache.cordova.camera.CameraLauncher$1.run(CameraLauncher.java:765)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
>     at java.lang.Thread.run(Thread.java:818)
>  Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
>     at libcore.io.Posix.open(Native Method)
>     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
>     at libcore.io.IoBridge.open(IoBridge.java:438)
>     ... 10 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org


Mime
View raw message