怎么知道哪个短信端口?

时间:2016-01-28 10:37:04

标签: android sms

我在Android应用程序中收到短信,但我不知道如何知道它发送的端口。 BroadcastReceiver接收所有短信,请告诉我如何知道短信的端口?

<data android:port="????" />

应该有多少人?

最诚挚的问候, 叶卡捷琳娜

1 个答案:

答案 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()