40 votes

Comment utiliser le fournisseur de contenu SMS? Où sont les docs?

J'aimerais être capable de lire le système de SMS fournisseur de contenu. Fondamentalement, je voulais faire un SMS app de messagerie, mais il ne serait utile que si je pouvais voir au-delà de threads etc.

Il semble que il ya un fournisseur de contenu pour cela, mais je ne trouve pas de documentation - ce que quelqu'un sait où c'est?

Merci

-------- edit -----------

Ok j'ai trouvé un moyen d'obtenir la boîte de réception de sms fournisseur, et j'ai jeté tous les noms de colonne dans le fait que le fournisseur, ressemble à ceci:

Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uriSms, null,null,null,null); 

// column names for above provider:
0: _id
1: thread_id
2: address
3: person
4: date
5: protocol
6: read   
7: status
8: type
9: reply_path_present
10: subject
11: body
12: service_center
13: locked

Je suis juste rattache cet ensemble de random fils j'ai trouver sur le net, je suis vraiment à se demander où tout cela est documentée (le cas échéant)?

Merci encore

7voto

Avtar Guleria Points 735

En plus de ceux que vous pouvez voir la liste des champs dans le fournisseur de contenu SMS en utilisant le code suivant:

 private void displaySmsLog() {
    Uri allMessages = Uri.parse("content://sms/");
     //Cursor cursor = managedQuery(allMessages, null, null, null, null); Both are same
    Cursor cursor = this.getContentResolver().query(allMessages, null,
            null, null, null);

    while (cursor.moveToNext()) {
        for (int i = 0; i < cursor.getColumnCount(); i++) {
            Log.d(cursor.getColumnName(i) + "", cursor.getString(i) + "");
        }
        Log.d("One row finished",
                "**************************************************");
    }

}
 

6voto

Josef Pfleger Points 37003

Malheureusement, le fournisseur de contenu pour les Sms et les Mms (android.providers.Telephony) ne fait pas partie de l' API publique en ce moment. Jusqu'à ce qu'il est, vous pouvez définir vos propres constantes à l'aide de ce modèle.

5voto

3voto

Omar Kam Points 59

Utilisez le champ selectionArgs

 String limite = "the timestamp converted to String";
Cursor cur = c.getContentResolver().query(uriSMSURI, null,"date" + ">?", new String[] {limite},null);
 

2voto

CommonsWare Points 402670

Le fournisseur de contenu SMS est non documenté pour une raison - il ne fait pas partie du SDK pour le moment. S'il vous plaît ne l'utilisez pas .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X