1

SMS レシーバーの配信に問題があります。Manifest権限とインテント フィルターを設定し、チュートリアルのようにActivitySMS を作成してBroadcastReceiverインテントをキャッチします

ここからのコードですActivity

        try {
            String DELIVERED = "SMS_RECEIVED";
            PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent(DELIVERED), 0);
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(contact.getPhone(), null, message, null, deliveredPI);
        } catch (Exception e) {
            Log.e(LOG_TAG, "Sms do not sent");
        }

ここに権限がありますManifest

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
    ...
    <receiver android:name="com.uniquare.sms.globals.DeliveredReceiver">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>

との一部Receivers

 public class DeliveredReceiver extends BroadcastReceiver {
private static final String LOG_TAG = "DeliveredReceiver";

@Override
public void onReceive(Context context, Intent intent) {
    Log.d(LOG_TAG, "onReceive()");
    //get the SMS message passed in
    Bundle bundle = intent.getExtras();
    SmsMessage[] msgs = null;
    String phone = "";
    if (bundle != null) {
        //retrieve the SMS message received
        Object[] pdus = (Object[]) bundle.get("pdus");
        msgs = new SmsMessage[pdus.length];
                    .....

そして、私にとって奇妙なことがあります。現在のデバイスに SMS を送信すると、正常にBroadcastReceiver動作します。しかし、連絡先リストから他のユーザーに送信するとBroadcastReceiver、まったく機能しません。

inandroid.provider.Telephony.SMS_RECEIVEDの代わりに設定しようとしています:SMS_RECEIVEDActivity PendingIntent

            String DELIVERED = "android.provider.Telephony.SMS_RECEIVED";
            PendingIntent deliveredPI = PendingIntent.getBroadcast(context, 0, new Intent(DELIVERED), 0);

この場合DeliveredReceiverは機能し、onReceiveが呼び出されますが、から取得しようとすると が取得pdusされObject[] pdus = (Object[]) bundle.get("pdus");ますnull

同じ問題がありますか?私に提案してもらえますか?

4

0 に答える 0