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?