【发布时间】:2016-09-16 03:41:25
【问题描述】:
我正在为 KitKat 和更高版本创建 SMS 管理器。我已经按照官方doc by android的指示实现了所有接收器。
我必须接收短信SMS_DELIVER 广播接收器并阅读它,然后必须写入短信提供商。
到目前为止,我可以阅读收到的短信。我已将我的应用程序设置为设备中的默认短信应用程序。我也在解析短信,可以在日志中看到。
问题
我无法将 SMS 写入 SMS 提供商。
这是广播接收器:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdusObj = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdusObj.length];
for (int i = 0; i < messages.length; i++) {
String format = bundle.getString("format");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdusObj[i], format);
} else {
messages[i] = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
}
}
for (SmsMessage msg : messages) {
Log.i("log", "display msg body : " + msg.getDisplayMessageBody() + "originating address : " + msg.getDisplayOriginatingAddress() + " get message body : " + msg.getMessageBody());
//here I have to write the message to the sms provider.
}
}
}
}
有人有什么建议吗?请帮帮我。
更新
我已经尝试过android-kitkat-api-19-how-to-write-messages-in-sms-content-provider-without 所以问题,但我无法绕过它。该解决方案用于写入已发送的 SMS,而无需执行任何发送 SMS 之类的操作。但我想把收到的短信写在这里。
【问题讨论】:
-
@ahmadaghazadeh 请看我的更新。
-
@MikeM。我已经做了一切。我已将其设置为默认短信应用程序和所有这些东西。我现在需要写信给短信提供商。我的目标 api 是 lollipop 和 M 。请建议
标签: android sms smsmanager