发送和接收数据短信绝对不起作用

时间:2018-07-28 15:06:35

标签: android sms

我想通过特定端口发送和接收数据短信。我的代码非常简单,我搜索了很多,但是应用程序从未在SmsReceiver类中输入onReceive方法,该类扩展了BroadcastReceiver超类。我哪里错了?

发送摘要:

SmsManager smsManager = SmsManager.getDefault();
byte[] smsBody = "hello".getBytes();
short port=6393;
phone="09121111111";
smsManager.sendDataMessage(phone, null,  port, smsBody, null, null);

和我在AndroidManifest.xml中的广播接收器注册:

<receiver android:name=".SmsReceiver"
    android:enabled="true"
    android:exported="true"
    >
    <intent-filter android:priority="1000">
        <action android:name="android.intent.action.DATA_SMS_RECEIVED" />
        <data
            android:host="*"
            android:port="6393"
            android:scheme="sms" />
    </intent-filter>
</receiver>

另外,应用程序还授予以下权限:

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />

此外,我尝试在并行应用程序中发送和接收短信,并且可以正常工作

3 个答案:

答案 0 :(得分:0)

您授予了必要的权限吗?例如:

     <uses-permission android:name="android.permission.RECEIVE_SMS"/>
     <uses-permission android:name="android.permission.READ_SMS" />

答案 1 :(得分:0)

我遇到了同样的情况。对我来说,解决方法是删除电话号码前面的'0',并解决了问题。

答案 2 :(得分:0)

我正在使用它,效果很好:

<receiver android:name="za.co.mtn.ti.notifier.SMSReceiver" >
            <intent-filter android:priority="10" >
                <action android:name="android.intent.action.DATA_SMS_RECEIVED" />
                <data android:scheme="sms" />
                <data android:host="localhost" />
                <data android:port="10001" />
            </intent-filter>
        </receiver>

<uses-permission android:name="android.permission.RECEIVE_SMS" >
</uses-permission>

确定要正确发送SMS吗?