That workaround doesn't work for me.

 When I try getContentResolver().getInputStream(imageUri) on the
picasa URI's, I get (the picasa item id has been removed, FYI):

01-26 13:37:11.660: E/com.getpicture.MainActivity(9007):
java.io.FileNotFoundException: No content provider:
content://com.android.gallery3d.provider/picasa/item/
01-26 13:37:11.660: E/com.getpicture.MainActivity(9007):        at
android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:
604)
01-26 13:37:11.660: E/com.getpicture.MainActivity(9007):        at
android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:
536)
01-26 13:37:11.660: E/com.getpicture.MainActivity(9007):        at
android.content.ContentResolver.openInputStream(ContentResolver.java:
371)

I've also tried:
ContentProviderClient client =
getContentResolver().acquireContentProviderClient(imageUri);
Log.e(this.getClass().getName(),client.getType(imageUri));

This gives a NPE, with an error message with a tag of
"ActivityThread",
01-26 13:59:39.860: E/ActivityThread(10127): Failed to find provider
info for com.android.gallery3d.provider

On Jan 25, 11:43 am, Anton <amkr...@gmail.com> wrote:
> Workaround is here:
>
> http://jimmi1977.blogspot.com/2012/01/android-api-quirks-getting-imag...
>
> On Jan 8, 7:57 pm, John <droidxl...@gmail.com> wrote:
>
>
>
>
>
>
>
> > I can confirm having this same bug only withpicasaimages on
> > Honeycomb and ICS.
>
> > Code:
>
> > file = new File(getPath(intent.getData()));
>
> > java.lang.RuntimeException: Failure delivering result
> > ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://
> > com.google.android.gallery3d.provider/picasa/item/
> > 5685218575016337410 }} to activity {MyActivity}:
> > java.lang.NullPointerException
> >         at android.app.ActivityThread.deliverResults(ActivityThread.java:
> > 2976)
> >         at android.app.ActivityThread.handleSendResult(ActivityThread.java:
> > 3019)
> >         at android.app.ActivityThread.access$1100(ActivityThread.java:122)
> >         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:
> > 1176)
> >         at android.os.Handler.dispatchMessage(Handler.java:99)
> >         at android.os.Looper.loop(Looper.java:137)
> >         at android.app.ActivityThread.main(ActivityThread.java:4340)
> >         at java.lang.reflect.Method.invokeNative(Native Method)
> >         at java.lang.reflect.Method.invoke(Method.java:511)
> >         at com.android.internal.os.ZygoteInit
> > $MethodAndArgsCaller.run(ZygoteInit.java:784)
> >         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
> >         at dalvik.system.NativeStart.main(Native Method)
> > Caused by: java.lang.NullPointerException
> >         at java.io.File.fixSlashes(File.java:185)
> >         at java.io.File.<init>(File.java:134)
> >         at MyActivity.onActivityResult(MyActivity.java:184)
> >         at android.app.Activity.dispatchActivityResult(Activity.java:4649)
> >         at android.app.ActivityThread.deliverResults(ActivityThread.java:
> > 2972)
> >         ... 11 more
> > java.lang.NullPointerException
> >         at java.io.File.fixSlashes(File.java:185)
> >         at java.io.File.<init>(File.java:134)
> >         at MyActivity.onActivityResult(MyActivity.java:184)
> >         at android.app.Activity.dispatchActivityResult(Activity.java:4649)
> >         at android.app.ActivityThread.deliverResults(ActivityThread.java:
> > 2972)
> >         at android.app.ActivityThread.handleSendResult(ActivityThread.java:
> > 3019)
> >         at android.app.ActivityThread.access$1100(ActivityThread.java:122)
> >         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:
> > 1176)
> >         at android.os.Handler.dispatchMessage(Handler.java:99)
> >         at android.os.Looper.loop(Looper.java:137)
> >         at android.app.ActivityThread.main(ActivityThread.java:4340)
> >         at java.lang.reflect.Method.invokeNative(Native Method)
> >         at java.lang.reflect.Method.invoke(Method.java:511)
> >         at com.android.internal.os.ZygoteInit
> > $MethodAndArgsCaller.run(ZygoteInit.java:784)
> >         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
> >         at dalvik.system.NativeStart.main(Native Method)
>
> > Andrew wrote:
> > > Hello,
>
> > > I'm trying to launch a Gallery Intent to allow the user to select an
> > > image. The issue is that the code works on 2.x but fails occasionally
> > > on 4.x (I haven't tested 3.x). I've narrowed it down to issues
> > > specific toPicasa-sourced images. For example, from my google+ posts
> > > (still in the Gallery app).
>
> > > The problematic URI is "content://
> > > com.google.android.gallery3d.provider/picasa/item/<some ID>".
> > > Attempting to retrieve the image local path gives me the error : "W/
> > > GalleryProvider( 8091): unsupported column: _data"
>
> > > My code is below:
>
> > > Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
> > > photoPickerIntent.setType("image/*");
> > > startActivityForResult(photoPickerIntent, PROFILE_PIC_RESULT);
>
> > > and then in onActivityResult(int requestcode, int resultcode, Intent
> > > data) :
>
> > > if(requestCode == PROFILE_PIC_RESULT && resultCode == RESULT_OK){
> > >     Uri selectedImage = data.getData();
> > >          String[] filePathColumn = {MediaStore.Images.Media.DATA};
> > >     Cursor cursor = getContentResolver().query(selectedImage,
> > > filePathColumn, null, null, null);
> > >     cursor.moveToFirst();
>
> > >          int columnIndex =
> > > cursor.getColumnIndexOrThrow(filePathColumn[0]);
> > >     String filePath = cursor.getString(columnIndex);
> > > }
>
> > > In 2.x, filePath will contain a useful string. In 4.x, filePath is
> > > null on some images because of the issue noted above.
>
> > > I found a similar bug report that seems to be suffering from the above
> > > problem:http://code.google.com/p/android/issues/detail?id=21234
>
> > > Can anyone confirm? I might need to submit another bug report on this
> > > issue.. because it's frustrating that some images a user might pick
> > > will be invalid while others will be okay.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to