我已经编写了在发送 SMS 时显示通知的代码。
出于某种原因,该代码在 Android 7 上无法像在所有较低 API 级别上一样运行。
第二个参数(联系人)在 CompletedReceiver 类中丢失并被检索为 null。
这是我的代码:
发送消息方法
private static void sendMessage(Context context, Message message, SystemContact contact) {
SmsManager smsManager = SmsManager.getDefault();
// Create sent intent.
Intent sentIntent = new Intent(context, SmsController.SendResultReceiver.class);
sentIntent.putExtra(context.getString(R.string.key_message_id), message.getId());
sentIntent.putExtra(context.getString(R.string.key_contact), contact);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, RequestCodes.SENT_SMS, sentIntent, PendingIntent.FLAG_UPDATE_CURRENT);
smsManager.sendTextMessage(contact.getPhoneNr(), null, message.getMsg(), pendingIntent, null);
}
已完成接收者
private void initPassedData(Context context, Intent intent) {
this.message = IntentHelper.getMessageById(context, intent);
this.contact = (SystemContact) intent.getSerializableExtra(context.getString(R.string.key_contact));
}
还有PendingIntent.FLAG_UPDATE_CURRENT是什么意思?