我想通过特定端口发送和接收数据短信。我的代码非常简单,我搜索了很多,但是应用程序从未在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" />
此外,我尝试在并行应用程序中发送和接收短信,并且可以正常工作
答案 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吗?