为什么Android API不公开允许收听传入的短信?

Raf*_*ele 5 android

最近有一个关于SO的问题引起了我的注意.Android没有用于收听传入短信的公共API.曾经有一个动作android.provider.Telephony.SMS_RECEIVED,但它已从官方API中删除,即使它仍然有效,它显然不是面向未来的.我现在不需要这个功能,但是我可能在将来,我发现它很奇怪它不可用,因为:

  1. Android一直鼓励对系统的每个小部分进行深度定制(想想启动器,拨号器,联系人应用程序)
  2. 市场上已经有很多标准SMS应用程序的替代品(更不用说供应商的了)

也许我错过了一些东西或者可能有技术原因 - 我承认不知道SMS是如何工作的

小智 0

我想如果你设置了它IntentReceiver应该可以正常工作。

public class SMSListener extends IntentReceiver {

    @Override
    public void onReceiveIntent(Context context, Intent intent) {
        SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
    ...
}
Run Code Online (Sandbox Code Playgroud)

确保您还将该权限包含
<uses-permission android:name="android.permission.RECEIVE_SMS" />在您的AndroidManifest.

这是我所知道的,但也许其他链接会对您有所帮助。
这是一个

这是另一个。

另外,虽然这与你的问题有点偏离主题,但我从这个网站学到了我对 Android SMS 的了解,所以也许你也可以从那里学到一些东西!

祝你好运,希望我有所帮助!