J'inscris actuellement un observateur de contenu sur l'URI "content: // sms /" pour écouter les messages entrants et sortants envoyés.Android - Interrogation du SMS ContentProvider?
Cela semble fonctionner ok et j'ai aussi essayé de supprimer de la base de données SMS, mais je ne peux supprimer un fil de discussion de l'URI suivant « contenu: // sms/conversations/»
Voici le code I utiliser pour cette
String url = "content://sms/";
Uri uri = Uri.parse(url);
getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler));
}
class MyContentObserver extends ContentObserver {
public MyContentObserver(Handler handler) {
super(handler);
}
@Override public boolean deliverSelfNotifications() {
return false;
}
@Override public void onChange(boolean arg0) {
super.onChange(arg0);
Log.v("SMS", "Notification on SMS observer");
Message msg = new Message();
msg.obj = "xxxxxxxxxx";
handler.sendMessage(msg);
Uri uriSMSURI = Uri.parse("content://sms/");
Cursor cur = getContentResolver().query(uriSMSURI, null, null,
null, null);
cur.moveToNext();
String protocol = cur.getString(cur.getColumnIndex("protocol"));
if(protocol == null){
Log.d("SMS", "SMS SEND");
int threadId = cur.getInt(cur.getColumnIndex("thread_id"));
Log.d("SMS", "SMS SEND ID = " + threadId);
Cursor c = getContentResolver().query(Uri.parse("content://sms/outbox/" + threadId), null, null,
null, null);
c.moveToNext();
int p = cur.getInt(cur.getColumnIndex("person"));
Log.d("SMS", "SMS SEND person= " + p);
//getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadId), null, null);
}
else{
Log.d("SMS", "SMS RECIEVE");
int threadIdIn = cur.getInt(cur.getColumnIndex("thread_id"));
getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadIdIn), null, null);
}
}
}
Cependant, je veux être en mesure d'obtenir le recipricant et le texte du message du contenu fournisseur SMS, quelqu'un peut-il me dire comment faire?
Et aussi comment supprimer un message au lieu d'un thread entier?
J'ai fait quelques progrès sur ce dans 1.5 mais je l'ai couru sur 1.6 et mon observateur de contenu cesse de fonctionner, dans 1.5 sa configuration pour "content: // sms /" mais devrait-il être quelque chose de différent pour 1.6? –
Un bon article sur les méthodes de messagerie SMS Android: http: //mobdev.olin.edu/mobdevwiki/FrontPage/Didacticiels/SMS% 20Messaging –
Bonjour Donal, J'ai vu votre question lors de la recherche d'une solution à mon problème. En fait, je veux savoir sur le code que vous avez posté avant la déclaration de classe. Ces codes appartiennent à une classe externe ou quoi? Au fait, si vous avez résolu votre problème, alors pouvez-vous me guider un peu. J'utilise Android 2.2 et mon problème est assez similaire à la vôtre. –