Thanks for the early reply.
The idea is good to check first in "canonical_addresses" table but i
have not found Uri exposed to get canonical table _id for the given
address.
We have the only Uri exposed to fetch address for the given _id. Do
you have any idea how to get _id from "canonical_addresses" table for
the given address.
Following is the refered link for uris
http://www.netmite.com/android/mydroid/packages/providers/TelephonyProvider/src/com/android/providers/telephony/MmsSmsProvider.java

Thanks,
Madhavi

On Feb 16, 6:54 pm, sukumar bhashyam <bhashyam.suku...@gmail.com>
wrote:
> hi ,
>
> Uri "content://mms-sms" doesn't point to any table in mmssms db, Its just a
> base uri.
>
> To check for address, I guess, you need to run below steps...
>
>  --> First query "canonical_addresses" table and get the _id, If query has 0
> count then address is not found.
>  --> If not, then look for _id in threads table ( Threads.ContentUri) where
> recipients_id is equal to id received in step 1.
>
>
>
> On Wed, Feb 16, 2011 at 5:22 PM, Madhavi <madhavi.har...@gmail.com> wrote:
> > Hi All,
>
> > In my application I have tried to get thread id using following code.
>
> > public static long getThreadIdFromAddress(ContentResolver resolver,
> >                        String address)
> >        {
> >                if (address == null)
> >                {
> >                        return 0;
> >                }
> >                // Content URIs for SMS app, these may change in future SDK
> >                Uri threadIdContentUri = Uri.withAppendedPath(Uri
> >                                .parse("content://mms-sms/"), "threadID");
> >                String smsId = "_id";
> >                String threadRecipientQuery = "recipient";
> >                Uri.Builder uriBuilder = threadIdContentUri.buildUpon();
> >                uriBuilder.appendQueryParameter(threadRecipientQuery,
> > address);
> >                long threadId = 0;
> >                Cursor cursor = resolver.query(uriBuilder.build(),
> >                                new String[] { smsId }, null, null, null);
> >                if (cursor != null)
> >                {
> >                        try
> >                        {
> >                                if (cursor.getCount() > 0)
> >                                {
> >                                        cursor.moveToFirst();
> >                                        for (int i = 0; i <
> > cursor.getCount(); i++)
> >                                        {
> >                                                threadId =
> > cursor.getLong(i);
> >                                        }
> >                                }
> >                        }
> >                        finally
> >                        {
> >                                cursor.close();
> >                                cursor = null;
> >                        }
> >                }
> >                return threadId;
> >        }
>
> > This is creating new thread id if its not exits in the sms-mms
> > database.
>
> > I have refered Threads class code from
> >http://hi-android.info/src/android/provider/Telephony.java.html.
> > This clearly indicates that new thread will get generated if it does
> > not exists.
>
> > In our application we are trying to get all conversations/messages for
> > the contacts used. We are fetching conversations/message data on the
> > basis of threadId which we are getting from above method call. Now
> > even if a particular contact does not have any message thread
> > available in message store, an empty message is getting generated. And
> > in native message application the newly generated message thread with
> > subject line as "(No subject)" is getting displayed.
>
> > I want to avoid this. If there is no message for a particular contact
> > I want to get thread id as "null" or "0". Do you know how can I
> > achieve this?
>
> > Or do you have any other suggetion to avoid above mentioned scenario?
>
> > Note: The device I have used is HTC-Nexus One. And the android version
> > used is 2.2.1.
>
> > Thanks,
> > Madhavi
>
> > --
> > 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- Hide quoted text -
>
> - Show quoted text -

-- 
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