2016-03-21 23 views
0

Entschuldigung, wenn ich keinen passenden Titel gefunden habe. Ich möchte wissen, dass es möglich ist, SMS als gelesen in der Standard-SMS-Anwendung über meine Anwendung zu markieren? dh ich entwickle meine eigene Anwendung, in der ich sms speichere, die nicht von der Kontaktliste sind, aber das Problem ist, dass, wenn überhaupt sms empfangen wurde, auf meiner App und auch auf der Standard-SMS-App, so dass ich will, wenn überhaupt sms erhalten Dann kann ich die SMS als gelesen markieren (von der Standard-SMS-App), so dass es nicht notwendig ist, zur Standard-SMS-App zu gehen und SMS als gelesen zu markieren. Kann ich das von meiner Anwendung aus tun?Eingehende SMS als gelesen markieren Standard-SMS-Anwendung

+0

"Kann ich das von meiner Anwendung?" - Nein. Es sei denn Sie sind gerade auf KitKat, in diesem Fall gibt es einen Workaround. –

+0

Ja, Sie können das tun mit Content-Provider, sobald Sie SMS in Ihrer Anwendung bekommen, wird es nicht in der Datenbank hinzugefügt werden. Sie müssen also warten, bis diese SMS in der Datenbank eingegeben wird. Daher müssen Sie nach einigen empfangenen SMS den Dienst starten. –

+0

@SilvansSolanki Können Sie einen Link angeben, der mir bei diesem Problem helfen kann? –

Antwort

0

versuchen diesen Code

private void markMessageASRead(Context context, String numb, 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()); 
    } 

}

+0

Ok Lemme versuchen, dass Sir –

Verwandte Themen