我在Android应用程序中收到短信,但我不知道如何知道它发送的端口。 BroadcastReceiver接收所有短信,请告诉我如何知道短信的端口?
<data android:port="????" />
应该有多少人?
最诚挚的问候, 叶卡捷琳娜
答案 0 :(得分:0)
端口仅与数据SMS相关,所有端口寻址的消息在Android中作为数据SMS处理。常规短信将没有与之关联的端口。
如果要接收端口寻址消息,则需要为数据SMS配置Receiver。此Receiver需要针对"android.intent.action.DATA_SMS_RECEIVED"
操作的过滤器,而不是常规短信的"android.provider.Telephony.SMS_RECEIVED"
操作。数据方案为"sms"
,数据端口可以是特定端口号,或通配符"*"
可以侦听所有端口。例如:
<receiver android:name=".DataSmsReceiver">
<intent-filter>
<action android:name="android.intent.action.DATA_SMS_RECEIVED" />
<data android:scheme="sms"
android:port="*" />
</intent-filter>
</receiver>
如果您正在侦听多个/所有端口并需要在接收器中区分它们,则可以从传递到{{1}的Uri
上的数据Intent
检索端口号。 } 方法。例如:
onReceive()