Android已读未读功能,android – 将SMS消息标记为已读/未读或删除在KitKat中不起作用的消息...

我一直在研究短信应用程序.直到昨天,当我将Nexus 4更新为

Android 4.4,KitKat时,一切顺利.诸如将SMS标记为已读/未读以及删除线程中的所有消息等功能已停止工作.为什么会这样?它适用于其他三星设备(不运行KitKat).

这是我将邮件标记为已读或未读的代码:

public static void markRead(final Context context, final Uri uri,

final int read) {

Log.d(TAG, "markRead(" + uri + "," + read + ")");

if (uri == null) {

return;

}

String[] sel = Message.SELECTION_UNREAD;

if (read == 0) {

sel = Message.SELECTION_READ;

}

final ContentResolver cr = context.getContentResolver();

final ContentValues cv = new ContentValues();

cv.put(Message.PROJECTION[Message.INDEX_READ], read);

try {

cr.update(uri, cv, Message.SELECTION_READ_UNREAD, sel);

} catch (IllegalArgumentException e) {

Log.e(TAG, "failed update", e);

Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG).show();

}

}

要删除线程中的所有消息,我使用:

public static void deleteMessages(final Context context, final Uri uri,

final int title, final int message, final Activity activity) {

Log.i(TAG, "deleteMessages(..," + uri + " ,..)");

final Builder builder = new Builder(context);

builder.setTitle(title);

builder.setMessage(message);

builder.setNegativeButton(android.R.string.no, null);

builder.setPositiveButton(android.R.string.yes,

new DialogInterface.OnClickListener() {

@Override

public void onClick(final DialogInterface dialog,

final int which) {

final int ret = context.getContentResolver().delete(

uri, null, null);

Log.d(TAG, "deleted: " + ret);

if (activity != null && !activity.isFinishing()) {

activity.finish();

}

if (ret > 0) {

Conversation.flushCache();

Message.flushCache();

SmsReceiver.updateNewMessageNotification(context,

null);

// adapter.notifyDataSetChanged();

}

try {

testFromFragment(context);

} catch (Exception e) {

e.printStackTrace();

}

}

});

builder.show();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值