很抱歉,如果我没有找到合适的头衔。 我想知道是否可以通过我的应用程序将SMS标记为默认SMS应用程序中的读取? 即我正在开发我自己的应用程序,其中我存储不是来自联系人列表的短信但问题是,当有短信收到它收到我的应用程序和默认的短信应用程序,所以我想,当有短信收到然后我可以将短信标记为已读(默认短信应用程序),这样就无需转到默认的短信应用程序并将短信标记为已读。 我能从申请表中做到吗?
答案 0 :(得分:0)
试试这段代码
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());
}
}