我一直在研究SMS應(yīng)用程序。一切順利,直到昨天,當(dāng)我將Nexus 4更新為Android 4.4 KitKat時(shí)。將SMS標(biāo)記為已讀/未讀以及刪除線程中的所有消息之類的功能已停止工作。為什么會(huì)這樣呢?它可以在其他三星設(shè)備(不運(yùn)行KitKat)上工作。這是我的代碼,用于將郵件標(biāo)記為已讀或未讀: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(); }
將SMS消息標(biāo)記為已讀/未讀或刪除在KitKat中不起作用的消息
ibeautiful
2019-11-03 16:04:21