Domanda

Nella mia app ho bisogno di interrogare sia l'SMS e MMS il registro per ottenere la storia di tutti i messaggi in entrata e in uscita. Questo codice ha funzionato meravigliosamente per SMS:

Cursor c = cr.query(Uri.parse("content://sms"), null, null, null, null);

Ma quando provo il seguente ottengo risultati completamente diversi:

Cursor c = cr.query(Uri.parse("content://mms"), null, null, null, null);

La query SMS restituisce dati che include l'indirizzo del messaggio (numero di telefono), nome del contatto, l'oggetto del messaggio, corpo del messaggio, ecc ... La stessa query per gli MMS restituisce un gruppo di valori nulli o campi valore numerico che non posso dare un senso. Ho davvero bisogno di un elenco di tutti i messaggi MMS attualmente al telefono con il numero di telefono o il contatto ID ad esso associato, e se il messaggio era un messaggio in arrivo o in uscita. Nei risultati della query SMS posso ottenere il numero di telefono dal campo address, e il tipo di ingresso / uscita dal campo type ma nessuno di questi esiste quando interrogo per gli MMS.

C'è un contenuto diverso Uri che ho bisogno di interrogare per questo tipo di dati MMS? Qualsiasi aiuto sarebbe molto apprezzato.

Edit: Giusto per chiarire, io sono del tutto consapevole del fatto che si tratta di un fornitore di contenuti non supportato. Tuttavia, poiché non v'è alcun modo supportato di fare questo sono pienamente disposto a testare e sostenere questo su una base per telefono / per OS base versione. Solo per mantenere la discussione in pista diciamo a questa domanda è specifico per Android 1.6 su un HTC Dream (G1) o HTC Magic (MyTouch). Come si eseguire questa operazione su quel telefono specifico e versione del sistema operativo? Oppure, se non è possibile su quelli, ma è possibile su Android 2.0 su un Motorola Droid, quindi vorrei scoprire che le informazioni molto utile pure. Ma a prescindere, lascia aderire alla discussione su come eseguire questa operazione in modo supportato o non supportato e non lasciare che devolvere in una discussione su come dovremmo tutti stare lontano dalle cose che non sono supportati dalle API, che è qualcosa che trovare i gruppi di discussione di Android per essere crivellati di e che mi sento offre poco o nessun tipo di aiuto. Se sto utilizzando un metodo non supportato, va bene, mi mostra il metodo supportato di realizzare questo compito. Se non esiste un metodo supportato, allora perché il supporto API che mi permette di richiedere il permesso di leggere SMS tramite android.permission.READ_SMS?

È stato utile?

Soluzione

Queste sono le URI Content che ho usato in passato. Dovrete giocherellare con i valori si ottiene indietro, ed è una lunga strada da ottenere le parti di un MMS, ma si spera che vi aiuterà.

// root URI for MMS messages
static final String MMS_CONTENT_URI = "content://mms";

// root URI for MMS and SMS threads
public static final String MMS_SMS_CONTENT_URI = "content://mms-sms";

// URI of MMS inbox
public static final String RECEIVED_MMS_CONTENT_URI = MMS_CONTENT_URI + "/inbox";

// URI where sent MMSes are stored
public static final String SENT_MMS_CONTENT_URI = MMS_CONTENT_URI + "/sent";

// URI where sent MMSes are stored
public static final String MMS_PART_URI = MMS_CONTENT_URI + "/part";

// URI for incoming SMSes (also triggers on MMSes)
public static final String SMS_INBOX_URI = "content://sms/inbox";
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top