如何将文本短信接收到特定端口?我一直在寻找这个问题的答案,但无济于事.这已被问过几次,但似乎没有人有明确的答案.我的代码如下:
- 管理文件 -
<receiver android:name=".SMSRecieve" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.DATA_SMS_RECEIVED"/>
<data android:scheme="sms" />
<data android:host="localhost" />
<data android:port="15005" />
</intent-filter>
</receiver>Run Code Online (Sandbox Code Playgroud)
--SMS发送方式 -
String messageText = msgTxt.getText().toString();
short SMS_PORT = 15005;
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendDataMessage("5556", null, SMS_PORT, messageText.getBytes(), null, null); Run Code Online (Sandbox Code Playgroud)
- 广播接收器代码 -
static final String ACTION = "android.intent.action.DATA_SMS_RECEIVED";
//static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";(tried this too, but failed)
if (intent.getAction().equals(SMSNotifyExample.ACTION)) {
...do some work..
}Run Code Online (Sandbox Code Playgroud)
我也尝试替换android:name,android.provider.Telephony.SMS_RECEIVED但结果是一样的.
我的应用程序未在指定端口上收到SMS.删除以下行后,它可以正常工作:
<data android:scheme="sms" />
<data android:host="localhost" />
<data …Run Code Online (Sandbox Code Playgroud) 据我所知,诺基亚和其他一些手机(如iPhone)能够发送和接收0级短信,是否有可能为Android?Android有API吗?
什么是闪光短信?
Flash SMS是一种短信,在抵达后立即显示在电话屏幕上.
除非您选择保存Flash消息,否则它将在导航时消失,并且不会保存在您的收件箱中.
如果将多个闪存消息发送到一部电话,则仅显示最新消息,并且将覆盖之前的所有消息.
0级:表示此消息将立即显示在MS上,并将消息传送报告发送回SC.该消息不必保存在MS或SIM卡上(除非移动用户选择这样做).
在Android 4.4之前,我可以通过设置优先级来阻止邮件进入收件箱
<receiver android:name="com.serviceschedular.helperClasses.SmsReceiver" >
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
然后在onRecieve()消息中abortBroadcast().但是在Android 4.4中我们需要定义SMS_DELIVER_ACTION以使我们的消息传递应用程序成为默认值:
通过这样做,我可以首先接收消息,他们不会移动到任何其他消息应用程序,但如果它不符合我的标准,我还需要将它们发送到消息传递应用程序.那么有什么方法可以实现这个功能吗?