2013-07-21 5 views
0

Je suis en train d'écrire mon propre gestionnaire de SMS et je l'ai trouvé de nombreux tutoriels comment obtenir SMS et MMS avec l'URI et du curseur, mais chaque essai je reçois des problèmes que je peux Ne résous pas. J'espère que tu m'aideras un peu. Ok, donc je l'ai utilisé « contenu: // mms-sms/conversations/» qui devrait travailler à la fois pour les SMS et MMS. Bien sûr que non. Ce code:Essayer d'obtenir SMS et MMS sur Android - HTC problèmes

final String[ ] projection = new String[ ]{ "*" }; 
Uri uri = Uri.parse("content://mms-sms/conversations/"); 
Cursor query = getContentResolver().query(uri, projection, null, null, null); 

TextView text = (TextView)findViewById(R.id.textView1); 
text.setText(Integer.toString(query.getCount())); 

Retour 13 ce qui est faux, parce que quand j'ai ouvert ma boîte aux lettres standard Android, je comptais 18 conversations.

La deuxième chose, a également essayé d'obtenir « adresse » de conversations:

final String[] projection = new String[]{"*"}; 
Uri uri = Uri.parse("content://mms-sms/conversations/"); 
Cursor query = getContentResolver().query(uri, projection, null, null, null); 
while(query.moveToNext()) 
    System.out.println("recv " + query.getString(query.getColumnIndexOrThrow("address"))); 

Parfois, l'adresse est un numéro, est parfois un nom, et est parfois nulle. Pourquoi? Comment puis-je réparer cela?

chose Troisièmement, de nombreux tutoriels, en stackoverflow aussi, il y a une solution très simple comment obtenir addresss de MMS. Obtenez juste cursor.getString (cursor.getColumnIndexOrThrow ("adresse")) de MMS et fait. Pas ici sur HTC. J'ai essayé ceci:

Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null); 
if(cursor.moveToFirst()) 
{ 
    for(int i = 0; i < cursor.getColumnCount(); i++) 
     System.out.println("SMS " + cursor.getColumnName(i)); 
} 

for(int i = 0; i < 3; i++) 
     System.out.println("***************************************************************"); 

Cursor cursor2 = getContentResolver().query(Uri.parse("content://mms/inbox"), null, null, null, null); 
if(cursor2.moveToFirst()) 
{ 
    for(int i = 0; i < cursor2.getColumnCount(); i++) 
     System.out.println("MMS " + cursor2.getColumnName(i)); 
} 

Et il me retourne:

07-21 02:12:40.631: I/System.out(25221): SMS _id 
07-21 02:12:40.631: I/System.out(25221): SMS thread_id 
07-21 02:12:40.631: I/System.out(25221): SMS toa 
07-21 02:12:40.631: I/System.out(25221): SMS address 
07-21 02:12:40.631: I/System.out(25221): SMS person 
07-21 02:12:40.631: I/System.out(25221): SMS date 
07-21 02:12:40.631: I/System.out(25221): SMS protocol 
07-21 02:12:40.631: I/System.out(25221): SMS read 
07-21 02:12:40.631: I/System.out(25221): SMS status 
07-21 02:12:40.631: I/System.out(25221): SMS type 
07-21 02:12:40.631: I/System.out(25221): SMS reply_path_present 
07-21 02:12:40.631: I/System.out(25221): SMS subject 
07-21 02:12:40.631: I/System.out(25221): SMS body 
07-21 02:12:40.631: I/System.out(25221): SMS sc_toa 
07-21 02:12:40.631: I/System.out(25221): SMS report_date 
07-21 02:12:40.631: I/System.out(25221): SMS service_center 
07-21 02:12:40.631: I/System.out(25221): SMS locked 
07-21 02:12:40.631: I/System.out(25221): SMS index_on_sim 
07-21 02:12:40.631: I/System.out(25221): SMS callback_number 
07-21 02:12:40.631: I/System.out(25221): SMS priority 
07-21 02:12:40.631: I/System.out(25221): SMS htc_category 
07-21 02:12:40.631: I/System.out(25221): SMS cs_timestamp 
07-21 02:12:40.631: I/System.out(25221): SMS cs_id 
07-21 02:12:40.631: I/System.out(25221): SMS cs_synced 
07-21 02:12:40.631: I/System.out(25221): SMS error_code 
07-21 02:12:40.631: I/System.out(25221): SMS seen 
07-21 02:12:40.641: I/System.out(25221): SMS is_cdma_format 
07-21 02:12:40.641: I/System.out(25221): SMS is_evdo 
07-21 02:12:40.641: I/System.out(25221): SMS c_type 
07-21 02:12:40.641: I/System.out(25221): SMS exp 
07-21 02:12:40.641: I/System.out(25221): SMS gid 
07-21 02:12:40.641: I/System.out(25221): SMS extra 
07-21 02:12:40.641: I/System.out(25221): SMS date2 
07-21 02:12:40.641: I/System.out(25221): 
*************************************************************** 
07-21 02:12:40.641: I/System.out(25221): 
*************************************************************** 
07-21 02:12:40.641: I/System.out(25221): 
*************************************************************** 
07-21 02:12:40.691: I/System.out(25221): MMS _id 
07-21 02:12:40.691: I/System.out(25221): MMS thread_id 
07-21 02:12:40.691: I/System.out(25221): MMS date 
07-21 02:12:40.691: I/System.out(25221): MMS msg_box 
07-21 02:12:40.691: I/System.out(25221): MMS read 
07-21 02:12:40.691: I/System.out(25221): MMS m_id 
07-21 02:12:40.691: I/System.out(25221): MMS sub 
07-21 02:12:40.691: I/System.out(25221): MMS sub_cs 
07-21 02:12:40.691: I/System.out(25221): MMS ct_t 
07-21 02:12:40.691: I/System.out(25221): MMS ct_l 
07-21 02:12:40.691: I/System.out(25221): MMS exp 
07-21 02:12:40.691: I/System.out(25221): MMS m_cls 
07-21 02:12:40.691: I/System.out(25221): MMS m_type 
07-21 02:12:40.691: I/System.out(25221): MMS v 
07-21 02:12:40.691: I/System.out(25221): MMS m_size 
07-21 02:12:40.691: I/System.out(25221): MMS pri 
07-21 02:12:40.691: I/System.out(25221): MMS rr 
07-21 02:12:40.691: I/System.out(25221): MMS rpt_a 
07-21 02:12:40.691: I/System.out(25221): MMS resp_st 
07-21 02:12:40.691: I/System.out(25221): MMS st 
07-21 02:12:40.691: I/System.out(25221): MMS tr_id 
07-21 02:12:40.691: I/System.out(25221): MMS retr_st 
07-21 02:12:40.691: I/System.out(25221): MMS retr_txt 
07-21 02:12:40.691: I/System.out(25221): MMS retr_txt_cs 
07-21 02:12:40.691: I/System.out(25221): MMS read_status 
07-21 02:12:40.691: I/System.out(25221): MMS ct_cls 
07-21 02:12:40.691: I/System.out(25221): MMS resp_txt 
07-21 02:12:40.691: I/System.out(25221): MMS d_tm 
07-21 02:12:40.691: I/System.out(25221): MMS d_rpt 
07-21 02:12:40.691: I/System.out(25221): MMS locked 
07-21 02:12:40.691: I/System.out(25221): MMS htc_category 
07-21 02:12:40.691: I/System.out(25221): MMS cs_timestamp 
07-21 02:12:40.691: I/System.out(25221): MMS cs_id 
07-21 02:12:40.691: I/System.out(25221): MMS cs_synced 
07-21 02:12:40.691: I/System.out(25221): MMS seen 
07-21 02:12:40.691: I/System.out(25221): MMS extra 
07-21 02:12:40.691: I/System.out(25221): MMS phone_type 
07-21 02:12:40.691: I/System.out(25221): MMS date2 

Donc, cela signifie que j'ai pas de champ "adresse" dans MMS. Alors, comment puis-je obtenir l'adresse? Je peux seulement obtenir du fil, mais la moitié de la conversation est invisible. Il semble qu'il est impossible de coder son propre gestionnaire SMS/MMS, il y a tellement de bugs sur le HTC.

Il y a une application sur Google Play nommé « GO SMS Pro » qui fonctionne très bien sur mon téléphone. Donc, cela signifie il y a un moyen de coder correctement. Qu'est-ce que je fais de mal? Comment puis-je le réparer et obtenir correctement les SMS et les MMS?

Répondre

0

Changement de "contenu: // mms-sms/conversations /" à "contenu: // mms-sms/conversations"

0

Essayez

Uri uri = Uri.parse("content://mms-sms/conversations?simple=true");