我可以使用以下代码片段在 Android 上发送和接收数据 SMS:
SmsManager manager = SmsManager.getDefault();
manager.sendDataMessage(phonenumber, null, (short) PORT, data,piSend, piDelivered);
其中 PORT=8091 表示发件人。而对于接收者,在清单文件中定义了一个广播意图,如下所示:
<receiver android:name=".DataSMSReceiver">
<intent-filter>
<action android:name="android.intent.action.DATA_SMS_RECEIVED"/>
<data android:port="8091"/>
<data android:scheme="sms"/>
</intent-filter>
</receiver>
然后在 DataSMSReceiver 类中接收。
但是,我需要像注册短信一样动态注册广播接收器,例如:
protected static final String SMS_RECEIVED="android.provider.Telephony.SMS_RECEIVED";
getApplicationContext().registerReceiver(mReceiver, new IntentFilter(SMS_RECEIVED));
如何在 IntentFilter 中指定端口以动态注册接收器?
提前致谢。