我正在刪除收件箱中的短信,但我想知道:如何在到達收件箱之前將其刪除?我們可以在Android中收到短信嗎?
回答
是的。
儘管對此問題有一些負面反應,但短信攔截仍有合法用途。例如:電話號碼驗證自動化,通過SMS提供的服務(儘管通常這應該通過數據SMS完成),或者用於通過處理特殊格式的消息來改善用戶體驗以便將其顯示在漂亮的Android中的應用程序特定的用戶界面。
從Android 1.6開始,傳入的SMS消息廣播(android.provider.Telephony.SMS_RECEIVED
)以「ordered broadcast」—的形式發送,這意味着您可以告訴系統哪些組件應該首先接收廣播。
如果您在SMS偵聽<intent-filter>
上定義了android:priority
屬性,您將在本機SMS應用程序之前收到通知。
此時,您可以通過cancel進行廣播,防止它傳播到其他應用程序。
更新(2013年10月):當Android 4.4的到來,它會進行更改SMS的API可能影響應用程序的影響SMS傳送能力。
查看這個Android開發者博客文章多一些信息:
http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html
聖神。這是真的!我一直認爲這將是相反的方式!爲了證明,請看[這裏](https://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=telephony/java/com/android/internal/telephony/SMSDispatcher的.java; HB = HEAD#L420)。哇。希望我可以給你多一個upvote;) – Hamy 2010-08-01 16:59:32
它可以在android 2.2上工作嗎? – kakopappa 2011-02-07 06:08:12
@ kakopappa:是的,正如在答案中提到的那樣,它從Android 1.6+開始。 – 2011-02-07 14:46:20
下(「機器人:優先」和abortBroadcast())解決方案,只要可以作爲Android的消息默認應用程序(我的意思是普通的Android消息應用)。如果用戶安裝了「GoSMSPro」或「HandcentSMS」,這些應用程序仍然在收件箱中顯示消息,我相信這是由於「android:priority」引起的。如果手機上安裝了第三方消息應用程序,我不認爲有更好的方法可以解決上述問題。
好點。但這應該是一個評論,而不是一個答案。可以移動它嗎? ---如果你提出一個非常高的價值呢?至於android:priority =「9999」?例如?你嘗試過嗎? – 2011-10-08 00:14:28
@FelipeMicaroniLalli居然GO短信PRO等,使用2147483647他們的優先 – rf43 2011-11-03 18:16:04
@DDoSAttack 2147483647是最大的? – 2011-11-04 04:48:11
如果你有這樣一個場景,你想刪除或忽略與此相關的聯繫號碼信息「+ 44xxxxx」等,然後使用這個代碼在短信廣播接收機
if(sender.equalsIgnoreCase("+44xxxxxx")
this.abortBroadCast();
您也可以將其設置爲高優先級。
abortBroadCast();不在Kitkat運行... – Noman 2014-09-29 12:15:55
abortBroadcast(); – eliasRuizHz 2015-10-22 06:06:50
步驟1:創建自定義廣播接收器來接收短信。寫邏輯中止broadst這樣就不會提供給您的收件箱
public class SMSReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
if(conditionMatches){
abortBroadcast();
}
}
}
步驟2註冊廣播接收器在AndoridManifest消息,並把機器人:優先級值大量
<receiver android:name=".SMSReceiver" >
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
那它
如何上面的代碼工作
由於接收廣播的短信是有序廣播,高優先級的接收機將首先收到,以便您的應用首先收到,並在收到您之後中止廣播。所以沒有其他應用程序可以接收它。因此短信將不存在於收件箱
我們可以有一個廣播接收器,當用戶按下消息收件箱,以便我可以開發一個鎖屏。 – 2014-02-15 08:12:19
/**
* Check priority
* @param activity
*/
public static void receiverPriority(Activity activity){
Intent smsRecvIntent = new Intent("android.provider.Telephony.SMS_RECEIVED");
List<ResolveInfo> infos = activity.getPackageManager().queryBroadcastReceivers(smsRecvIntent, 0);
for (ResolveInfo info : infos) {
System.out.println("Receiver: " + info.activityInfo.name + ", priority=" + info.priority);
}
}
檢查優先級並設置比其他接收者更高的優先級(在您的清單中)。
- 1. 可以發送短信與Android中收到的短信有關係嗎?
- 2. 我可以發送「短信收到意向」嗎?
- 3. 在Android中讀取收到的短信
- 4. Android:多次收到短信
- 5. 我可以在Android上隱藏短信嗎?
- 6. 您可以直接在cURL中發送短信/短信嗎?
- 7. Codename可以讀短信嗎?
- 8. 我們可以使用SmsManager將短信發送給其他非Android設備嗎?
- 9. 我們可以縮短我寫在js中的jQuery代碼嗎?
- 10. 接收短信Android
- 11. C++:我們可以收集類型嗎?
- 12. 在android上收聽短信
- 13. 我可以寫一個android服務來發送短信嗎?
- 14. 我可以使用Android發送匿名短信嗎?
- 15. 可以通過模擬器在android中發送短信嗎?
- 16. 我可以從傳入的短信/彩信中啓動Android應用嗎?
- 17. 發短消息在android短信中收到的活動
- 18. 如何從我們的android應用程序接收短信?
- 19. android短信發送到收到號碼
- 20. 我們可以從iPhone sdk的iPhone內存中檢索短信嗎?
- 21. 我們可以在黑莓手機上獲得短信發送報告嗎?
- 22. 我們可以在iOS上檢測到非iBeacon信標嗎?
- 23. 我可以在XPath中寫短路嗎?
- 24. 短信廣播接收器在Android中的多個短信
- 25. 在android中發送獨特的短信和接收looong短信
- 26. Zendesk和Smooch整合:我可以在Zendesk中收到短信,但無法回覆短信
- 27. 在Android到達收件箱之前,在Android中刪除短信?
- 28. 如何在Android中收聽新短信
- 29. 如何在android中接收短信?
- 30. 在android中無法接收短信
j2ee真的是一個匹配的標籤嗎? – jitter 2009-11-16 11:42:04
爲什麼java不正確你不用java編程Android? – jitter 2009-11-16 11:51:05
這邪惡的惡魔。你不應該這樣做。 – MattC 2009-11-17 03:14:29