0

我正在开发一个应用程序,它将从前台服务发送非常罕见的 SMS 消息。如果应用程序没有被用户自己严重滥用,我们每年最多会谈论几次。

前几天我在一个真实的设备上测试了它,然后弹出一个对话框,上面说了些什么

AppName is trying to send an SMS. 
   Do you want to allow this? 

     Accept         Decline

[ ] Never ask again

我不记得确切的措辞,而且我无法重现它。我不会发誓,但我相当肯定它是在运行 Android 4.4.4 的设备上。

这是该应用程序第一次尝试在此设备上发送短信,所以我认为它与SmsUsageMonitor.isUnderLimit()无关。是否有其他安全检查适用于从前台服务发送短信(包括所有版本的 Android,而不仅仅是 4.4.4)?

SmsUsageMonitor似乎对“高级”号码进行了一些检查,并且可能需要某种形式的用户接受,以防应用程序尝试向这样的号码发送消息。如果是这种情况,有没有办法“预先批准”我的应用程序以一劳永逸地发送到任何号码 - 包括高级号码?或者将来是否仍需要手动用户批准,例如,如果使用新的收件人号码(可能是高级号码)?

4

1 回答 1

0

在更改应用程序的包名称后,我似乎能够重现这一点(卸载没有帮助)。这确实与保费号码有关 - 或者更确切地说是什么SmsUsageMonitor被认为是保费号码。

对我来说,在瑞典,5 位或更少位数且不是紧急号码(如 112)的号码似乎被视为高级号码。维基百科在短代码上对此有所支持

瑞典

代码长度为五位数。

这是弹出的对话框。选中“记住我的选择”并单击“发送”后,对话框不再出现。该设置可以在App Info中更改,其中有一个名为Send Premium SMS的设置。

Android 4.4.4 的屏幕截图

于 2018-09-26T23:13:41.607 回答