将SMS消息标记为已读/未读或删除在KitKat中不起作用的消息

游戏制作人420

我一直在研究SMS应用程序。一切顺利,直到昨天,当我将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();
}
迈克·M

使用Android 4.4,在SMS方面发生了一些变化。其中一个事实是,只有注册为默认SMS应用程序的应用程序才能访问提供程序。

在此处查看有关SMS更改的简短说明。

检查此链接,以更深入地了解。这篇文章说明了您的应用程序要成为默认消息传递应用程序,需要满足哪些条件。

是官方的好玩的东西。

因此,如果您的应用不是默认的消息传递应用,这就是为什么指定功能停止工作的原因。


可以在此处答案中找到默认提供者限制的可能解决方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查看Sinch消息中的消息是否已读/未读

来自分类Dev

如何使用ios7和parse.com将消息中的对话或消息标记为未读?

来自分类Dev

如何将GridView中的记录标记为已读和未读

来自分类Dev

默认情况下,可以将 Thunderbird 设置为不将消息标记为已读吗?

来自分类Dev

在 Thunderbird 60+ 中打开时延迟或禁用消息标记为已读

来自分类Dev

当两个用户都在聊天室中时,消息仍被标记为未读

来自分类Dev

当两个用户都在聊天室中时,消息仍被标记为未读

来自分类Dev

在Outlook中删除时标记为已读?

来自分类Dev

Windows 10默认邮件应用-如何将所有未读标记为已读?

来自分类Dev

EWS foreach所有未读消息均不起作用

来自分类Dev

休眠标记消息为“已读”

来自分类Dev

Office 365邮箱将未标记的项目标记为已读

来自分类Dev

如何在PHP消息系统中设置已读未读标志

来自分类Dev

删除/移至回收站时将项目标记为已读

来自分类Dev

Powershell-Outlook将所有邮件标记为已读,然后删除

来自分类Dev

Powershell-Outlook将所有邮件标记为已读,然后删除

来自分类Dev

Gmail REST API-将邮件标记为已读

来自分类Dev

提及API-将提及标记为已读

来自分类Dev

如何将邮件项目标记为已读?

来自分类Dev

如何使用Vue js将通知标记为已读?

来自分类Dev

如何将网站标记为已读?

来自分类Dev

Gmail REST API-将邮件标记为已读

来自分类Dev

提及API-将提及的内容标记为“已读”

来自分类Dev

fdm和msmtp:将邮件标记为已读

来自分类Dev

如何将邮件项目标记为已读?

来自分类Dev

如何在Postfix中将已读邮件标记为未读

来自分类Dev

Office365 Graph API-标记为已读/未读,不会更新lastModifiedDateTime

来自分类Dev

标记为已读/未读按钮数据表php/mysql

来自分类Dev

自动将电子邮件标记为在Evolution 3.2.2中已读?

Related 相关文章

  1. 1

    查看Sinch消息中的消息是否已读/未读

  2. 2

    如何使用ios7和parse.com将消息中的对话或消息标记为未读?

  3. 3

    如何将GridView中的记录标记为已读和未读

  4. 4

    默认情况下,可以将 Thunderbird 设置为不将消息标记为已读吗?

  5. 5

    在 Thunderbird 60+ 中打开时延迟或禁用消息标记为已读

  6. 6

    当两个用户都在聊天室中时,消息仍被标记为未读

  7. 7

    当两个用户都在聊天室中时,消息仍被标记为未读

  8. 8

    在Outlook中删除时标记为已读?

  9. 9

    Windows 10默认邮件应用-如何将所有未读标记为已读?

  10. 10

    EWS foreach所有未读消息均不起作用

  11. 11

    休眠标记消息为“已读”

  12. 12

    Office 365邮箱将未标记的项目标记为已读

  13. 13

    如何在PHP消息系统中设置已读未读标志

  14. 14

    删除/移至回收站时将项目标记为已读

  15. 15

    Powershell-Outlook将所有邮件标记为已读,然后删除

  16. 16

    Powershell-Outlook将所有邮件标记为已读,然后删除

  17. 17

    Gmail REST API-将邮件标记为已读

  18. 18

    提及API-将提及标记为已读

  19. 19

    如何将邮件项目标记为已读?

  20. 20

    如何使用Vue js将通知标记为已读?

  21. 21

    如何将网站标记为已读?

  22. 22

    Gmail REST API-将邮件标记为已读

  23. 23

    提及API-将提及的内容标记为“已读”

  24. 24

    fdm和msmtp:将邮件标记为已读

  25. 25

    如何将邮件项目标记为已读?

  26. 26

    如何在Postfix中将已读邮件标记为未读

  27. 27

    Office365 Graph API-标记为已读/未读,不会更新lastModifiedDateTime

  28. 28

    标记为已读/未读按钮数据表php/mysql

  29. 29

    自动将电子邮件标记为在Evolution 3.2.2中已读?

热门标签

归档