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

时间:2012-02-11 18:54:34

标签: android

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

  1. Android一直鼓励对系统的每个小部分进行深度定制(想想启动器,拨号器,联系人应用程序)
  2. 市场上已有很多标准短信应用程序的替代品(更不用说供应商的那些)
  3. 也许我错过了某些东西或者可能有技术原因 - 我承认不知道短信是如何工作的

1 个答案:

答案 0 :(得分:0)

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

public class SMSListener extends IntentReceiver {

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

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

这是我所了解的,但也许其他链接可以帮助你 Here's一个

Here's另一个。

此外,虽然这与你的问题略有不同,但我从this site了解了我对Android短信的了解,所以也许你也可以从中挑选一些内容!

祝你好运,我希望我能帮助你!