【发布时间】:2016-03-23 08:32:18
【问题描述】:
我上网已经有一段时间了,以便找到一种方法来禁用对传入短信的广播,但主要是据说在 android 4.4+ 上你不能这样做,因为它的功能已经删除。但我可以告诉你这是错误的。在此link 中的银行应用程序(针对 android 4.9)中 您可以找到一个发送和接收短信的应用程序,而不会让其他应用程序注意到短信的传输。您可以下载应用程序here。 请帮我解决这个问题。如何在不通知其他应用的情况下接收短信?
【问题讨论】:
我上网已经有一段时间了,以便找到一种方法来禁用对传入短信的广播,但主要是据说在 android 4.4+ 上你不能这样做,因为它的功能已经删除。但我可以告诉你这是错误的。在此link 中的银行应用程序(针对 android 4.9)中 您可以找到一个发送和接收短信的应用程序,而不会让其他应用程序注意到短信的传输。您可以下载应用程序here。 请帮我解决这个问题。如何在不通知其他应用的情况下接收短信?
【问题讨论】:
他们最有可能使用数据 SMS,也称为端口寻址 SMS。事实上,快速、粗略地解压 APK 并仔细阅读清单表明他们在端口 7442 上为 DATA_SMS_RECEIVED 操作注册了一个接收器。
数据 SMS 不由 Provider 处理(排序规则除外),只有侦听该特定端口的应用才会接收它们,因此它们不会出现在平台应用或几乎任何其他 SMS 应用中。
所以这不是SMS_RECEIVED 广播被中止或SMS_DELIVER 广播被拦截的问题。这不是普通的短信。
【讨论】:
for 循环来构建 String 一次一个字符,而是尝试以下操作:recMsgString += new String((byte[]) data);,不使用循环。
String 对我来说很好。