在 root Android 4.4 及更高版本上阻止传入短信?
Block incoming SMS on rooted Android 4.4 and higher?
按照the doc:
Note that—beginning with Android 4.4—any attempt by your app to abort
the SMS_RECEIVED_ACTION broadcast will be ignored so all apps
interested have the chance to receive it.
所以,只有默认的 SMS 应用程序可以做到这一点,看起来 Android 5.0 没有任何改变(由于未知原因,根据 issue 被标记为过时)。
如果 phone 已获得 root 权限,是否有任何方法可以阻止非默认短信应用的传入短信(这是垃圾邮件阻止应用所必需的)?怎么做?
您可以编写覆盖 CarrierMessagingService 的服务。
如果绑定到此成功,则消息不会传递到主应用程序。
BIND_CARRIER_MESSAGING_SERVICE
注册为运营商消息服务所需的权限要求该应用程序是系统应用程序。所以你需要将你的应用推送到系统。
将您的应用设置为默认短信服务提供商。然后它可以注册SMS_DELIVER_ACTION。在该接收器中,您可以选择是否将 SMS 写入数据库。如果您选择不这样做,则 SMS 基本上会被忽略。如果您选择,任何其他应用都可以接收短信。
您可以尝试以下解决方案:
遍历能够处理 SMS 的包列表并以编程方式禁用它们。
要获得 API 禁用应用程序,您必须成为 MDM(移动设备管理)合作伙伴 app.OEMs 为其 MDM 合作伙伴应用程序提供额外的 API 以控制device.For 示例三星提供 api 来禁用特定的 app.I 我猜他们也有 API 来控制特定应用程序的权限。
或者我想新的 android Device/Profile Owner 模式必须有一个 API 来禁用特定的应用程序。
按照the doc:
Note that—beginning with Android 4.4—any attempt by your app to abort the SMS_RECEIVED_ACTION broadcast will be ignored so all apps interested have the chance to receive it.
所以,只有默认的 SMS 应用程序可以做到这一点,看起来 Android 5.0 没有任何改变(由于未知原因,根据 issue 被标记为过时)。
如果 phone 已获得 root 权限,是否有任何方法可以阻止非默认短信应用的传入短信(这是垃圾邮件阻止应用所必需的)?怎么做?
您可以编写覆盖 CarrierMessagingService 的服务。 如果绑定到此成功,则消息不会传递到主应用程序。
BIND_CARRIER_MESSAGING_SERVICE
注册为运营商消息服务所需的权限要求该应用程序是系统应用程序。所以你需要将你的应用推送到系统。
将您的应用设置为默认短信服务提供商。然后它可以注册SMS_DELIVER_ACTION。在该接收器中,您可以选择是否将 SMS 写入数据库。如果您选择不这样做,则 SMS 基本上会被忽略。如果您选择,任何其他应用都可以接收短信。
您可以尝试以下解决方案:
遍历能够处理 SMS 的包列表并以编程方式禁用它们。
要获得 API 禁用应用程序,您必须成为 MDM(移动设备管理)合作伙伴 app.OEMs 为其 MDM 合作伙伴应用程序提供额外的 API 以控制device.For 示例三星提供 api 来禁用特定的 app.I 我猜他们也有 API 来控制特定应用程序的权限。
或者我想新的 android Device/Profile Owner 模式必须有一个 API 来禁用特定的应用程序。