Cool, gotcha, thanks.

On Aug 27, 5:12 pm, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
> You don't need to manually type the uris.. as I said before you can use
> ContentUris.withAppendedId(People.CONTENT_URI, <person_id>)
>
> More in the docs/examples 
> here:http://code.google.com/android/devel/data/contentproviders.html
>
> Most of the times you could get the base URIs and use withApendedPath() or
> withAppenededID()...to generate the full Uri..
>
> 2008/8/27 kingkung <[EMAIL PROTECTED]>
>
>
>
> > Got it, thanks.  I just did Uri.parse() on that a string containing
> > "content://...".
>
> > It would certainly be nice if we didn't have to manually type that
> > entire URI address in... some way we could access the ENTIRE Uri for
> > People, Phones, etc.  Even referencing People.CONTENT_URI.getPath()
> > fails to show the "content://contacts" portion of the Uri.
>
> > On Aug 27, 4:42 pm, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
> > > Yes it would crash, because then the Uri value you get does not include
> > the
> > > base contacts uri...which is content://contacts.
>
> > > The uri value should be something like:
> > > content://contacts/people/<person_id>
> > > As long as the Uri value is in this format and the person_id is present
> > in
> > > the content provider it should work...
> > > You can use ContentUris.withAppendedId(People.CONTENT_URI, <person_id>)
> > to
> > > generate the correct Uri ..
>
> > > 2008/8/27 kingkung <[EMAIL PROTECTED]>
>
> > > > If you try that code in your demo (and print out the Uri for
> > > > debugging), it will crash with a null pointer exception.
>
> > > > I also tried using Uri.Builder to rebuild the contact Uri, and that
> > > > didn't work either.
>
> > > > On Aug 27, 4:31 pm, kingkung <[EMAIL PROTECTED]> wrote:
> > > > > /people/189 is the uri i get.
>
> > > > > On Aug 27, 4:24 pm, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
>
> > > > > > You definitely don't need to store the URI, what are the first and
> > > > second
> > > > > > URI values that you get?
>
> > > > > > 2008/8/27 kingkung <[EMAIL PROTECTED]>
>
> > > > > > > I added one simple line to the demo and it crashed with a null
> > > > pointer
> > > > > > > exception.  Apparently I can't recreate a second Uri from an
> > original
> > > > > > > Uri.
>
> > > > > > >  private void readContact(Uri uri) {
> > > > > > >    ImageView i = (ImageView) findViewById(R.id.image);
> > > > > > >    Uri uri2 = Uri.parse(uri.getEncodedPath());
> > > > > > >    Bitmap b = People.loadContactPhoto(this, uri2, 0, null);
> > > > > > >    i.setImageBitmap(b);
> > > > > > >  }
>
> > > > > > > This is a terrible scenario, because people don't necessarily
> > store
> > > > > > > and retrieve within the same operations, and I have no idea how
> > to
> > > > > > > store a Uri except storing its path as a String.
>
> > > > > > > How do I get around this??
>
> > > > > > > On Aug 27, 3:04 pm, "Megha Joshi" <[EMAIL PROTECTED]> wrote:
> > > > > > > > Please refer to the attached sample code for setting a
> > contact's
> > > > image
> > > > > > > and
> > > > > > > > loading it..
> > > > > > > > I didn't get null pointer exception so perhaps there is
> > something
> > > > else
> > > > > > > going
> > > > > > > > on with your code...
>
> > > > > > > > 2008/8/27 kingkung <[EMAIL PROTECTED]>
>
> > > > > > > > > I'm having trouble getting the new contact photo methods for
> > 0.9
> > > > beta
> > > > > > > > > to work correctly.
>
> > > > > > > > > This is what I do currently:
>
> > > > > > > > >        private static boolean storePhoto(Context context,
> > > > > > > AndroidContact
> > > > > > > > > ac,Uri personUri)
> > > > > > > > >        {
> > > > > > > > >                byte[] bytes =
> > > > > > > > > ExternalServices.retrieveBytesFromURL(ac.photoUrl);
>
> >  People.setPhotoData(context.getContentResolver(),
> > > > > > > personUri,
> > > > > > > > > bytes);
> > > > > > > > >                return true;
> > > > > > > > >        }
>
> > > > > > > > > where the path of the personUri is something like
> > "/people/57"
>
> > > > > > > > > To retrieve, I use the same personUri, and do:
>
> > > > > > > > >      public void loadPhoto(Uri personUri) throws Exception
> > > > > > > > >      {
> > > > > > > > >                Bitmap b = null;
> > > > > > > > >                b=People.loadContactPhoto(f_context,
> > personUri,
> > > > > > > > > R.drawable.no_photo_found,null);
> > > > > > > > >                if (b!=null)
> > > > > > > > >                        photoView.setImageBitmap(b);
> > > > > > > > >                else
>
> > > > > > > > >  photoView.setImageResource(R.drawable.no_photo_found);
> > > > > > > > >     }
>
> > > > > > > > > Store seems to work correctly as far as I can tell, but
> > retrieve
> > > > > > > > > throws a NullPointerException on the line
>
> > > > > > > > > b=People.loadContactPhoto(f_context, personUri,
> > > > > > > > > R.drawable.no_photo_found,null);
>
> > > > > > > > > which is amazing, because none of the parameters (outside of
> > the
> > > > last
> > > > > > > > > one) are null.
>
> > > > > > > > > What is going on?
>
> > > > > > > >  ContactsDemo.zip
> > > > > > > > 51KViewDownload
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new Android 0.9 SDK beta!
http://android-developers.blogspot.com/2008/08/announcing-beta-release-of-android-sdk.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to