2012-09-19 12 views
6

Estoy trabajando en una aplicación de Android. Cogí el recipient_id del siguiente uri.Obtener dirección desde la tabla "canonical_addresses"

content://mms-sms/conversations?simple=true 

Ahora queremos obtener la dirección de canonical_addresses " table using the recipient id. But I don't have any idea to query canonical_addresses table". Busqué mucho en la web. Por favor, ayúdame a encontrar una solución amigos.

Respuesta

13

La tabla canónica tiene dos columnas, _id y address. Cuando obtiene el ID del destinatario, busca el ID en la tabla de direcciones canónicas. Para varios destinatarios los identificadores están separadas por un espacio, por lo que tendrá que dividir el resultado como

recipient_ids.split(" ")

y las operaciones de búsqueda cada ID.

getContentResolver().query(Uri.parse("content://mms-sms/canonical-addresses"), null, "_id = " + recipientId, null, null); 

o

getContentResolver().query(Uri.parse("content://mms-sms/canonical-address/" + recipientId), null, null, null, null); 
+0

@ Vikki..thanks mucho – sarath

+0

Esto ayudó tan mucho – toobsco42

+0

bueno @Vikki, lo que si se desea obtener el thread_id del contenido uri": // mms-sms/conversaciones? simple = true ". ¿Cómo lo harías tú? – toobsco42

2
message = contentResolver.query(uri, null,null, null,SORT_ORDER); 
      if(message != null){ 
       while (message.moveToNext()) { 
         String id = message.getString(message.getColumnIndex("_id")); 
         String thid = message.getString(message.getColumnIndex("thread_id")); 
         String phoneNumber = message.getString(message.getColumnIndex("address")); 
         String person = message.getString(message.getColumnIndex("person")); 
         //String present = message.getString(message.getColumnIndex("reply_path_present")); 
         //Log.v("sms "+thid,id); 
         //Log.v("sms "+present,present); 
         if(phoneNumber !=null){ 
           //if(phoneNumber.contains("-")) 
            phoneNumber=phoneNumber.replaceAll("[-() ]", ""); 
         } 
         else 
         { 
          Cursor c =contentResolver.query(Uri.parse("content://mms-sms/conversations?simple=true"), null, "_id = " + thid, null, null); 
          //getContentResolver().query(Uri.parse("content://mms-sms/canonical-addresses"), null, "_id = " + recipientId, null, null); 
          if(c.moveToNext()) 
          { 

           phoneNumber = c.getString(3); 
           if(phoneNumber !=null){ 
             //if(phoneNumber.contains("-")) 
            Log.v(" id=>" +id+ " thid=>"+thid +" first = > " , c.getString(3)); 
           } 
          } 
          c.close(); 
          c =contentResolver.query(Uri.parse("content://mms-sms/canonical-addresses"), null, "_id = " + phoneNumber, null, null); 
          if(c.moveToNext()) 
          { 
           Log.v(thid +" second = > " , c.getString(1)); 
           phoneNumber = c.getString(1); 
           phoneNumber=phoneNumber.replaceAll("[-() ]", ""); 
          } 
          c.close(); 
Cuestiones relacionadas