是否可以拦截来自特定号码的短信,并将其直接传送到iPhone/Android上将要处理的某个应用程序? 谢谢。iPhone/Android短信拦截和重定向到应用程序
1
A
回答
0
对于Android,答案是否定的。您可以实现一个BroadcastReceiver
,该设备在设备收到SMS文本消息但无法让其他应用程序(例如内置消息传送应用程序)也无法接收它们时被调用。
1
在Android中,您可以做的是注册BroadcastReceiver
,以通知已收到SMS,将该消息标记为已在SMS Content Provider中读取,然后从内容提供者中删除该特定消息。这会阻止任何其他应用程序在删除该消息后才能够阅读该消息,并且通知空间中不会显示任何通知。也就是说,我不知道接收Intent的应用程序会发生什么情况,表明收到了一条消息,但无法在数据库中访问它。这可能会导致不可预知的行为,由于一些竞争条件。
0
对于Android的答案是是的。
android.provider.Telephony.SMS_RECEIVED
事件是有序广播,您可以调整优先级。这意味着您的应用程序将在其他人之前收到事件。并且您可以取消其他广播接收器的广播。
您可以在这里找到更多的信息:stackoverflow.com/can-we-delete-an-sms-in-android-before-it-reaches-the-inbox/
0
在Android中,一旦你在你的应用程序接收短信,你可以使用一个Intent对象的消息的细节传递给作进一步处理其他活动/应用。如果您需要将消息传递给您自己的应用程序,请使用sendBroadcast()方法广播Intent对象。在你的活动中,你只需要使用registerReceiver()方法来监听广播。
希望它有帮助! 李伟明
1
是的。这是可能的Android。我正在开发一个应用程序。 你需要做的是:
public class SMSService extends BroadcastReceiver {
public static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private String phoneNumber;
private String sms;
private Context context;
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i = 0; i < msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
// get sms message
sms = msgs[i].getMessageBody();
// get phone number
phoneNumber = msgs[i].getOriginatingAddress();
if (phoneNumber.equals("Some other phone number")){
// the sms will not reach normal sms app
abortBroadcast();
Thread thread = new Thread(null,
doBackgroundThreadProcessing, "Background");
thread.start();
}
}
}
}
}
private Runnable doBackgroundThreadProcessing = new Runnable() {
// do whatever you want
};
重要: 清单文件,你必须有大量的短信定义优先级。我相信最大值为100.
<!-- SMS Service -->
<service android:name=".SMSService" />
<receiver android:name=".SMSService">
<intent-filter android:priority="100">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
相关问题
- 1. 拦截收到的短信
- 2. Howto在reactjs应用程序中从axios拦截器重定向?
- 3. 将短信重定向到android应用程序目录
- 4. 拦截来袭的短信
- 5. 拦截,阅读和取消短信
- 6. 越狱iPhone上的拦截短信
- 7. 如何拦截打开短信邮箱?
- 8. 拦截意图打开短信?
- 9. 拦截Android中的传出短信
- 10. IOS越狱如何拦截短信/短信
- 11. 如何防止iPhone短信警报或拦截短信?
- 12. 多重方法拦截和拦截器重用
- 13. 使用Twilio响应短信与http重定向到外部webapp
- 14. iphone短信应用程序
- 15. 麻烦拦截NFC意向与我的应用程序
- 16. 安卓:如何拦截短信时,广播无序?
- 17. IFrame Fangate应用程序和重定向
- 18. Facebook应用程序被重定向到
- 19. 在MVC应用程序框架中使用拦截器还是不拦截器?
- 20. 重定向到其他应用程序的应用程序
- 21. 应用程序重定向到另一个应用程序
- 22. Struts 2的sessionToken拦截总是重定向到错误
- 23. HttpModule事件 - 拦截共享点重定向到accessdenied.aspx
- 24. struts2拦截器重定向两次到动作
- 25. http被重定向到https被防火墙拦截?
- 26. 这是否意味着它可能拦截短信/彩信
- 27. 如何拦截Android上传出的短信并通知用户
- 28. 将多个HTTP拦截器添加到Angular应用程序
- 29. 如何去执行短信/短信/彩信到C#应用程序
- 30. Java程序拦截端口?
android:priority的最大值为1000.请参见:http://developer.android.com/guide/topics/manifest/intent-filter-element.html – 2013-08-16 12:04:16