1

我正在尝试使用 SMSManager 发送没有用户界面的短信。在 android 4.1.2 及更低版本上没问题,但它在 Android 4.4.2 中不起作用。

这是我的代码:

SmsManager sms = SmsManager.getDefault();
ArrayList<String> msgStringArray = sms.divideMessage(message);
sms.sendMultipartTextMessage(phoneNumber, null, msgStringArray, null,null);

怎么了 ?

4

1 回答 1

1

由于 Android 4.4 的更改,您的应用可能无法发送 SMS。在https://developer.android.com/about/versions/android-4.4.html#SMS中概述,您可以看到更改。

SMS 提供程序Telephony 内容提供程序(“SMS 提供程序”)允许应用程序在设备上读取和写入 SMS 和 MMS 消息。它包括接收、起草、发送、待定等 SMS 和 MMS 消息的表格。

从 Android 4.4 开始,系统设置允许用户选择“默认短信应用”。选择后,只有默认的 SMS 应用程序能够写入 SMS Provider,并且只有默认的 SMS 应用程序在用户收到 SMS 时接收 SMS_DELIVER_ACTION 广播,或者当用户收到 MMS 时只有默认 SMS 应用程序接收 WAP_PUSH_DELIVER_ACTION 广播。默认 SMS 应用程序负责在 SMS Provider 接收或发送新消息时向其写入详细信息。

其他没有被选为默认 SMS 应用的应用只能读取 SMS Provider,但也可以通过监听 SMS_RECEIVED_ACTION 广播来通知新的 SMS 到达,这是一个不可中止的广播,可以传送到多个应用。此广播适用于那些——虽然未被选为默认 SMS 应用程序——但需要读取特殊传入消息(例如执行电话号码验证)的应用程序。

有关更多信息,请阅读博客文章,让您的 SMS 应用程序为 KitKat 做好准备。

于 2014-05-16T17:06:00.547 回答