2016-01-16 1 views
1
ContentResolver cr = getContentResolver(); 
    String[] projection = new String[]{"body", "ct_t", "_id", "address"}; 
    Uri uri = Uri.parse("content://mms-sms/conversations/" + id); 
    Cursor c = cr.query(uri, projection, null, null, null); 

Ceci interroge tous les messages d'une conversation spécifique et je souhaite que seuls les messages envoyés s'affichent car je dois distinguer chaque partie de la conversation. Y at-il une telle chose comme un uri comme ceci:Comment obtenir uniquement des messages envoyés à partir d'une conversation spécifique dans Android Studio?

Uri uri2 = Uri.parse("content://mms-sms/conversations/" + id + "/sent/"); 

Répondre

1

Vous aurez besoin d'ajouter quelques colonnes à votre projection , et inclure un argument de sélection dans l'appel query().

final String[] projection = {"_id", "address", "body", "ct_t", "type", "msg_box"}; 
final String selection = "(type = 2 OR msg_box = 2)"; 
final Uri uri = Uri.parse("content://mms-sms/conversations/" + threadId); 
Cursor c = getContentResolver().query(uri, projection, selection, null, null); 

Un message SMS aura une valeur type de 2 quand il a été envoyé. Un message MMS aura la même valeur, mais dans la colonne msg_box.