2014-10-11 25 views
1

我正想着为Android编写一个小应用程序,拦截接收到的文本,并将它们推送到Windows计算机,您可以在其中响应。不过,我知道你不能在Android上发送短信,而不会成为默认的短信应用程序,而且我也不想创建一个完整的短信客户端。只是截取文本并将其显示在Windows上的东西,但使用默认的短信息应用程序发送和接收。这可能吗?拦截SMS意图(非默认应用程序)

+1

“但是,我知道你不能在Android上发送短信,而不是默认的短信应用程序” - 任何带有SEND_SMS的应用程序都可以通过SmsManager发送短信。 – CommonsWare 2014-10-11 16:44:56

+0

我认为发送短信,而不是默认的应用程序将不允许它显示在默认的应用程序? – AllHailSeizure 2014-10-11 16:49:45

+1

大多数Android版本都不会通过'SmsManager'通知其他应用发送的短信息。我似乎回忆起,现在'SmsManager'写入Android 4.4的标准发件箱,但我可能会误解这一点。 – CommonsWare 2014-10-11 16:51:44

回答

0

因此,要首先接收短信,您必须设置具有最高优先级的IntentFilter。如:

IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); 
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); 
registerReceiver(smsReceiver , filter); 

其中smsReceiver是扩展BroadcastReceiver的类。在onReceive方法中,你可以调用abortBroadcast();这将停止播放“android.provider.Telephony.SMS_RECEIVED”事件。更多信息http://developer.android.com/reference/android/content/BroadcastReceiver.html