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

Connor Pearson commented on CB-9891:
------------------------------------

[~jasongin], I originally tried that solution but it didn't work in my case. It 
may have been only for kitkat. The cause seems to be the same as this post 
http://stackoverflow.com/questions/21849086/copy-a-picture-from-android-photo-library-causes-error
 

> Inconsistent URI encoding causing permission errors on android
> --------------------------------------------------------------
>
>                 Key: CB-9891
>                 URL: https://issues.apache.org/jira/browse/CB-9891
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Camera, Plugin File
>    Affects Versions: 2.1.0, 3.0.0
>         Environment: Android 5+
>            Reporter: Connor Pearson
>            Assignee: Jason Ginchereau
>              Labels: Android, reproduced
>
> Using the camera plugin to get a picture from the photo library returns an 
> encoded URI. If you then call resolveLocalFileSystemURI the fileEntry object 
> returned contains the decoded path component of the URI. This path property 
> is used in the toInternalURL function which means it's also decoded. Because 
> Android gave us permission to the encoded URI, but not the decoded URI, 
> attempting to access the decoded URI results in a permission error. 
> {code:javascript}
> document.getElementById("myButton").addEventListener("click", function(){
>             navigator.camera.getPicture(function(uri){
>                 console.log(uri); 
> //content://com.android.providers.media.documents/document/image%3A27         
>               window.resolveLocalFileSystemURI(uri, function(fileEntry){
>                     console.log(fileEntry.toInternalURL()); 
> //cdvfile://localhost/content/com.android.providers.media.documents/document/image:27
>                                                                               
>                     fileEntry.file(function(){alert("success");}, 
> function(){alert("fail");});
>                 },function(error){
>                     // resolved by pulling in PR 119
>                     alert("Fail resolveFileSystemURI code: " + error.code);
>                 });
>             }, null, {sourceType: 0, allowEdit: false});
>         });
> {code}
> I feel like something must be wrong in one of the plugins, but I'm not sure 
> where.
> One possible fix is calling uri.getEncodedPath() instead of uri.getPath in 
> LocalFileSystemURL.parse and then removing the call to encodeURI() from 
> FileSystem.js, but I'm not sure if this is the right strategy.



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

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

Reply via email to