Posso intercettare sms, vedere il telefono del mittente, il corpo, posso interrompereBroadcast se non mi piace questo sms, ma non so come segnare questo sms come leggi, quell'utente può leggere nella casella dopo. Qualche idea su come posso fare questo?Android: come contrassegnare gli sms come letti onRicevere
risposta
Questo potrebbe aiutare:
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());
}
}
Non credo che ci sia alcun supporto ufficiale per questo, ma questa domanda fornisce un metodo di farlo (non hanno provato però): Mark MMS as read programmatically
idea sbagliata, sms che prendo in OnReceive non è in "tenore: // SMS" –
@ Andrew-Dovrebbe essere: contenuti "content // sms/casella di posta" .. –
Una risposta è stata data qui: 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);
dove "_id" è l'ID del messaggio
cura, grazie NilayOnAndroid!
Dovrebbe essere" : // sms/inbox ".. –
Dal Android 4.4 KitKat l'unica applicazione in grado di modificare i dati sms - SMS-app che è stata impostata come predefinita
solo l'applicazione che riceve la trasmissione SMS_DELIVER_ACTION (l'app SMS predefinita specificata dall'utente) è in grado di scrivere sul provider SMS definito da android.provider.Telografia classe e sottoclassi
Maggiori informazioni possono essere trovate qui: http://android-developers.blogspot.ru/2013/10/getting-your-sms-apps-ready-for-kitkat.html
ho fatto un workarround versioni più recenti che KitKat, dalla risposta here: se ci sono messaggi da leggere, quando l'utente lascia l'applicazione, avviare applicazione SMS con il numero per il quale voglio messaggi per contrassegnare la lettura. Questo segnerà automaticamente tutti i messaggi come letti.
@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. Come contrassegnare gli elementi letti con l'API di google reader?
- 2. Contrassegno di messaggi SMS come letti/non letti o eliminazione di messaggi non funzionanti in KitKat
- 3. Come analizzare gli SMS in arrivo su Android?
- 4. Come accedere all'archivio SMS su Android?
- 5. Come assicurarsi che gli SMS vengano inviati in Android
- 6. Classe 0 SMS (flash SMS) su Android
- 7. API SMS Android
- 8. android: come faccio a contrassegnare la mia app come debuggibile?
- 9. Contenuto SMS Android (contenuto: // sms/inviato)
- 10. Come contrassegnare gli elementi dell'elenco annidati in Bitbucket?
- 11. Android: ricevi tutti gli sms inviati? (posta in uscita)
- 12. SMS URL su Android
- 13. android - costanti tipo sms
- 14. Android - Ricevitore Broadcast SMS
- 15. Come possiamo simulare chiamate e SMS in Android?
- 16. Come inviare un SMS in Android Kitkat dall'app non predefinita senza scrivere al provider SMS
- 17. pjsip invia sms come
- 18. Come ottenere bozze di SMS in Android 6 Marshmallow
- 19. SMS raw pdu in Android
- 20. Come contrassegnare un metodo obbligatorio?
- 21. Come eliminare tutti gli sms dalla posta in arrivo programmaticamente in Android?
- 22. È possibile bloccare gli SMS in uscita?
- 23. come contrassegnare un'interfaccia come DataContract in WCF
- 24. Svantaggi di contrassegnare una classe come serializzabile
- 25. Come inviare SMS dall'app Android senza registrarne la visualizzazione SMS dispositivo?
- 26. Procmail: passare alla cartella e contrassegnare come letto
- 27. Invia SMS tra emulatori Android
- 28. Android di rilevamento Silent Sms
- 29. Contrassegnare la differenza come ok in vimdiff
- 30. Come "deliveryIntent" funziona nel framework SMS di Android?
È tutto letto msg nella casella o in un particolare – Prasad
No, solo un messaggio particolare con _id = SmsMessageId –
Il risultato di ritorno della query di aggiornamento è 0. Qual è la ragione di questo? –