android:端口的数据消息没有收到

时间:2016-05-24 17:13:59

标签: android mci

我正在使用端口在我的应用中发送数据消息。

我在发送数据消息时遇到问题(android中的sendDataMessage)。我的代码适用于MCI sim卡,我的意思是发送者和接收者都有MCI sim卡。

如果发件人有MCI且接收者有正确的Irancell SIM卡消息。

相反,如果发送者有Irancell sim并且接收者有MCI sim,则根本不会发送:(尽管在这种情况下,文本消息发送/接收正常工作,数据消息将无效)。

此外,当发送者和接收者拥有Irancell sims时,它可以正常工作。 请帮我解决这个问题。

我的清单代码:

<receiver android:name=".SmsListener">
    <intent-filter android:priority="999">
        <action android:name="android.intent.action.DATA_SMS_RECEIVED" />
        <intent-filter android:priority="999">
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
        <data android:scheme="sms" />
        <data android:port="7442" />
    </intent-filter>
    <intent-filter android:priority="1000">
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>
<meta-data android:name="port" android:value="7442" />

我的smsListener:

public void onReceive(Context context, Intent intent)     
    {
        Toast.makeText(context, "Yuhuuu", Toast.LENGTH_LONG).show();
        MainActivity.smsReceived(true);
        Bundle bundle = intent.getExtras();
        String recMsgString = "";
        String fromAddress = "";
        SmsMessage recMsg = null;
        byte[] data = null;
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            for (int i = 0; i < pdus.length; i++) {
                recMsg = SmsMessage.createFromPdu((byte[]) pdus[i]);

                try {
                    data = recMsg.getUserData();
                } catch (Exception e) {

                }
                if (data != null) {
                    for (int index = 0; index < data.length; ++index) {
                        recMsgString += Character.toString((char) data[index]);
                    }
                }
                fromAddress = recMsg.getOriginatingAddress();
            }
        }
        System.out.println(recMsgString + " ,this Has been Recieved from: " + fromAddress);
    }

和我的DataMessage发件人代码:

 String messageText = "some text";
        short SMS_PORT = 7442;
        SmsManager smsManager = SmsManager.getDefault();
        String phoneNumber = "+98910*******";
        smsManager.sendDataMessage(phoneNumber, null, shortValue, messageText, null, null);

}

0 个答案:

没有答案