我一直在試圖從sendMultipartTextMessage得到狀態結果代碼,我不明白的東西是如果廣播接收器與sendTextMessage一起工作,爲什麼它不與sendMultipartTextMessage一起使用?我搜索範圍很廣,查找和代碼示例,但只是不能看到任何明顯的原因,爲什麼這將無法正常工作。任何人都可以對此有所瞭解嗎?廣播接收器與sendMultiPartTextMessage
ArrayList<String> messages = sms.divideMessage(text);
int messageCount = messages.size();
ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>(messageCount);
ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>(messageCount);
for (int j = 0; j < messageCount; j++) {
sentIntents.add(
PendingIntent.getBroadcast(context, 0, new Intent(SENT_ACTION),
0));
}
sms.sendMultipartTextMessage(phoneNumber, null, messages, sentIntents, null);
這裏是我的BroadcastReceiver
:
private BroadcastReceiver messageSentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(context, "SMS sent", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(context, "Generic failure", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(context, "No service", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(context, "Null PDU", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(context, "Radio off", Toast.LENGTH_SHORT).show();
break;
}
}
};
的代碼是按以下步驟進行:
sentIntents = new ArrayList<PendingIntent>();
sentIntent = PendingIntent.getBroadcast(context, 0, new Intent(SENT_ACTION), 0);
deliveredIntent = PendingIntent.getBroadcast(context, 0, new Intent(DELIVERED_ACTION), 0);
context.registerReceiver(messageSentReceiver, new IntentFilter(SENT_ACTION));
context.registerReceiver(messageDeliveredReceiver, new IntentFilter(DELIVERED_ACTION));
如果任何人都可以對這個有何啓示,我真的很感激它。我只是不明白爲什麼這可以與sendTextMessage
,但不是sendMultipartTextMessage
。
謝謝。
是否需要創建兩個不同的類。 –