Java Google Hangouts中未读或已读短信的数量始终为0

Java Google Hangouts中未读或已读短信的数量始终为0,java,android,sms,telephony,hangout,Java,Android,Sms,Telephony,Hangout,我正在尝试查找通过Google Hangouts收到的未读短信的数量。我尝试了这个答案(),并修改了代码以计算未读短信的数量。它每次返回0。如果我试图通过将“read=0”切换到“read=1”来获取读取计数,则计数仍然为0 我意识到这意味着我有一个空的短信收件箱,但实际上我没有。你知道我可能做错了什么吗 当我将默认短信应用程序切换到Messenger时,它会毫无问题地获取未读计数 最后,这是我正在使用的代码: private int getUnreadMessageCount() {

我正在尝试查找通过Google Hangouts收到的未读短信的数量。我尝试了这个答案(),并修改了代码以计算未读短信的数量。它每次返回0。如果我试图通过将
“read=0”
切换到
“read=1”
来获取读取计数,则计数仍然为0

我意识到这意味着我有一个空的短信收件箱,但实际上我没有。你知道我可能做错了什么吗

当我将默认短信应用程序切换到Messenger时,它会毫无问题地获取未读计数

最后,这是我正在使用的代码:

 private int getUnreadMessageCount() {
        Cursor c = getContentResolver().query(Telephony.Sms.Inbox.CONTENT_URI, null, "read = 0", null, null);
        int unreadCount = c.getCount();
        c.close();
        return unreadCount;
    }

非常感谢您的帮助。谢谢大家!

你的链接是从2010年开始的,我不确定这现在是否仍然可行。另外,为了确定,(API>23)?我做了,是的,(现在编辑了这个问题,将其包括在内)。您在2017年如何做到这一点?
READ_SMS
是一种
危险权限
现在,您需要。至于以2017年的方式列出SMS,您必须等待其他人回答:)。但首先尝试使用此权限系统,或者手动授予应用程序设置的权限。这仍然是您查询SMS提供商的方式。如果你的收件箱是空的,但“闲逛”显示的是消息,那么我怀疑你的问题是“闲逛”。当它是默认设置时,它会在消息传递方面做一些古怪的事情。我不使用它,所以我从来没有机会确切说明它的作用。为了进行测试,您可能会临时将默认设置为另一个SMS应用程序(基本Messenger,如果您有),向自己发送一些文本,然后再次执行查询。我还建议查询基本
content://sms
URI,带有空选择,以查看是否有任何类型的消息。是的,因此当Messenger为默认值时,它似乎会获取计数。没有这样的运气。你的链接是从2010年开始的,我不确定这现在仍然是可能的。另外,为了确定,(API>23)?我做了,是的,(现在编辑了这个问题,将其包括在内)。您在2017年如何做到这一点?
READ_SMS
是一种
危险权限
现在,您需要。至于以2017年的方式列出SMS,您必须等待其他人回答:)。但首先尝试使用此权限系统,或者手动授予应用程序设置的权限。这仍然是您查询SMS提供商的方式。如果你的收件箱是空的,但“闲逛”显示的是消息,那么我怀疑你的问题是“闲逛”。当它是默认设置时,它会在消息传递方面做一些古怪的事情。我不使用它,所以我从来没有机会确切说明它的作用。为了进行测试,您可能会临时将默认设置为另一个SMS应用程序(基本Messenger,如果您有),向自己发送一些文本,然后再次执行查询。我还建议查询基本
content://sms
URI,带有空选择,以查看是否有任何类型的消息。是的,因此当Messenger为默认值时,它似乎会获取计数。没有这样的运气。