2014-10-11 50 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