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

Brion Vibber commented on CB-1293:
----------------------------------

Problem seems to be that different things can store at different locations, 
which may not be very predictable. :( Safest thing is probably to read the file 
through Android's ContentResolver.

FileTransfer does that like so:

        if (path.startsWith("content:")) {
            Uri uri = Uri.parse(path);
            return 
cordova.getActivity().getContentResolver().openInputStream(uri);
        }

http://developer.android.com/reference/android/content/ContentResolver.html#openInputStream%28android.net.Uri%29

Changing CameraLauncher.getScaledBitmap to be able to take a 'content:' URI 
directly and do BitmapFactory.decodeStream() instead of 
BitmapFactory.decodeFile() might do the job.

(However I'm seeing some trouble using FileTransfer.upload on the Picasa images 
on my phone, so .... mileage may vary. :P)
                
> Camera.getPicture crashes when selecting from a Picasa album on Android
> -----------------------------------------------------------------------
>
>                 Key: CB-1293
>                 URL: https://issues.apache.org/jira/browse/CB-1293
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 2.0.0
>         Environment: Crash found with 2.0.0 on Galaxy Nexus running Android 
> 4.0.4
>            Reporter: Brion Vibber
>            Assignee: Simon MacDonald
>
> When using camera.getPicture with options:
>   destinationType: Camera.DestinationType.FILE_URI,
>   sourceType: Camera.PictureSourceType.PHOTOLIBRARY
> and selecting a photo from a Picasa-synced album, the application crashes 
> immediately upon trying to return the data.
> Here's our downstream bug with some analysis: 
> https://bugzilla.wikimedia.org/show_bug.cgi?id=39604
> FileUtils.getRealPathFromURI() cannot read the "_data" column from the 
> content provider database, so imagePath and bitmap in 
> CameraLauncher.onActivityResult are null. The crash occurs when trying to run 
> bitmap.recycle().
> I can avoid the crash by adding a guard check for bitmap != null and the 
> content: URI is usable in the app to load the image, but doesn't appear to 
> work with FileTransfer.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to