我希望使用SmsManager
发送和接收短信,发送短信即可,但我无法接收短信,我使用BroadcastReceiver
这是我发送的代码:
public void sendMultipartSMS(byte[] packer) throws UnsupportedEncodingException {
SmsManager sms = SmsManager.getDefault();
ArrayList<String> messageParts = sms.divideMessage(strMessage);
sms.sendMultipartTextMessage(strPhone, null, messageParts, sentPendingIntents, deliveredPendingIntents);
}
这是用于接收短信:
public class SmsReceiver extends BroadcastReceiver {
private String TAG = SmsReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
Log.e(TAG,"onReceive");
// Get the data (SMS data) bound to intent
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null) {
// Retrieve the SMS Messages received
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
// For every SMS message received
for (int i=0; i < msgs.length; i++) {
// Convert Object array
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
// Sender's phone number
str += "SMS from " + msgs[i].getOriginatingAddress() + " : ";
// Fetch the text message
str += msgs[i].getMessageBody().toString();
str += "\n";
}
// Display the entire SMS Message
Log.d(TAG, str);
}
}
}
也在我的清单中:
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<!-- Declare SMS Broadcast receiver -->
<receiver
android:name=".SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
有缺失的情绪? BrodcastReceive不起作用