无法接收短信

时间:2017-12-27 09:50:02

标签: java android sms receiver

我希望使用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不起作用

0 个答案:

没有答案