Je peux attraper des sms, peut voir le téléphone de l'expéditeur, le corps, je peux abandonnerBroadcast si je n'aime pas ce sms, mais je ne sais pas comment juste marquer ce sms comme lire, cet utilisateur peut lire dans la boîte plus tard. Des idées comment je peux faire ça?Android: comment marquer les sms comme lu dans onReceive
Répondre
Cela pourrait vous aider:
private void markMessageRead(Context context, String number, String body) {
Uri uri = Uri.parse("content://sms/inbox");
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
try{
while (cursor.moveToNext()) {
if ((cursor.getString(cursor.getColumnIndex("address")).equals(number)) && (cursor.getInt(cursor.getColumnIndex("read")) == 0)) {
if (cursor.getString(cursor.getColumnIndex("body")).startsWith(body)) {
String SmsMessageId = cursor.getString(cursor.getColumnIndex("_id"));
ContentValues values = new ContentValues();
values.put("read", true);
context.getContentResolver().update(Uri.parse("content://sms/inbox"), values, "_id=" + SmsMessageId, null);
return;
}
}
}
}catch(Exception e)
{
Log.e("Mark Read", "Error in Read: "+e.toString());
}
}
Je ne pense pas qu'il y ait un soutien officiel, mais cette question fournit une méthode de le faire (ne l'ont pas essayé bien): Mark MMS as read programmatically
mauvaise idée, sms que je surprends dans OnReceive est pas "content: // sms" –
@ Andrew-Il devrait être "content: // sms/boîte de réception" .. –
Une réponse a été donnée ici: Set sms as read in Android
ContentValues values = new ContentValues();
values.put("read",true);
getContentResolver().update(Uri.parse("content://sms/inbox"),values,
"_id="+SmsMessageId, null);
où "_id" est l'ID
Modifié, merci NilayOnAndroid du message!
Il devrait être « contenu : // sms/inbox ".. –
Depuis Android 4.4 KitKat la seule application peut modifier les données sms - SMS-application qui a été définie par défaut
que l'application qui reçoit la diffusion SMS_DELIVER_ACTION (l'application SMS par défaut spécifiée par l'utilisateur) est capable d'écrire dans le fournisseur SMS défini par android.provider.Téléphone classe et sous-classes
Plus d'informations peuvent être trouvées ici: http://android-developers.blogspot.ru/2013/10/getting-your-sms-apps-ready-for-kitkat.html
Je l'ai fait une workarround pour les versions plus récentes qui KitKat, de réponse here: s'il y a des messages à lire, lorsque l'utilisateur quitte l'application, commencez l'application SMS avec le numéro que je veux messages à marquer lus. Cela marquera automatiquement tous les messages lus.
@Override
public void onBackPressed() {
if (toBeRead) {
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", smsNumber);
//smsIntent.putExtra("sms_body","Body of Message");
startActivity(smsIntent);
toBeRead = false;
}
}
- 1. SMS marquer comme lu android
- 2. Pubsub: Marquer comme lu
- 3. Set sms comme lu dans Android
- 4. Marquer comme non lu
- 5. Activesync Marquer comme lu
- 6. Android: Marquer un message texte (SMS) non lu
- 7. Marquer le MMS comme lu par programmation
- 8. "Marquer comme lu" dans une application RESTful
- 9. java.mail marquer le message comme non lu
- 10. Marquer un fil de discussion comme lu?
- 11. API Google Reader - Marquer tout comme lu
- 12. Comment marquer un email comme lu dans Rails
- 13. Rails & Javascript - Comment marquer quelque chose comme vu ou lu?
- 14. La notification du bac SMS non lu reste après le marquage du SMS comme lu
- 15. Facebook Graph API, marquer la boîte de réception comme lu?
- 16. Comment analyser les SMS entrants sur Android?
- 17. Comment appeler onReceive de onReceive d'un autre BroadcastReceiver dans Android?
- 18. SMS DeliveryBroadcast (BroadCastReceiver) OnReceive n'est jamais appelé
- 19. Google lecteur api marquer un élément comme non lu
- 20. Lotus Notes @command pour marquer l'email actuel comme lu?
- 21. Comment marquer tous les messages texte lus sur Android?
- 22. Comment puis-je marquer un élément comme lu avec Google Reader api (en utilisant python)
- 23. comment marquer comme sérialisable dans dbml?
- 24. Google Reader Marque OAuth comme étant lu
- 25. Comment créer une intention SMS Android?
- 26. OnUpdate appelé avant onReceive dans Widget Android
- 27. Marquer comme obsolète
- 28. Android onReceive dans BroadcastReceiver ne fonctionne pas
- 29. Jquery: marquer les liens comme visités sans les ouvrir?
- 30. puis-je marquer la notification comme déjà lu, en utilisant le graphique api?
Est-ce que cela lit tous les msgs dans la boîte ou un particulier – Prasad
Non, juste un message particulier avec _id = SmsMessageId –
Le résultat de la requête de mise à jour est 0. Quelle est la raison derrière cela ? –