當前位置:編程學習大全網 - 源碼下載 - 手機可不可以攔截垃圾短信

手機可不可以攔截垃圾短信

可以的。

只要手機開機有信號就可以接收到對方的信息的。當設置為拒絕來電或者黑名單的時候,對方發送短信的話,手機還是能夠收到這條短信的,短信保存在妳的手機黑名單或者拒絕來電記錄裏,記錄裏除了有拒接通話記錄還有短信攔截記錄。

短信攔截其實是比較簡單的壹種,網上有很多相關介紹,這裏主要介紹壹下在寫的過程中遇到的壹些問題。

首先短信攔截的實現原理也是監聽短信的廣播,然後判斷短信的號碼,判斷是否是在黑名單,如果是的話就用abortBroadcast方法結束廣播的傳遞就可以了。其中在做的過程中最主要的問題不是收到監聽,而且最先收到監聽,因為短信的廣播是有序廣播,那麽誰最先收到廣播,誰就可以有權利結束廣播的傳遞,所以我們實際上在做的時候是要想辦法把我們接收廣播的權限提到最高,這裏主要是兩個方法,1是設置權限值最大,2是註冊方式設置為動態註冊的。

設置權限最大,其實就是把註冊廣播時的優先級設置最大,其中Android系統api中說明最大權限是1000,而在實際上接收的是壹個int值,而且系統沒有判斷值的上線,所以我們可以設置int的最大值,這個權限是最高的。

那麽如果都是最大權限了,誰的優先級高呢,那麽就是第二點,動態註冊監聽,因為在源碼中動態註冊的廣播是在靜態廣播之前放入監聽列表中的,所以我們這裏用動態註冊來設置監聽。

那如果大家也都用動態註冊的方式了,誰先收到呢,這個地方好像又跟應用的包名有關系,具體我也沒有搞太明白,大概意思是安裝時間越早,優先級越高,包名在系統中的別名順序越靠前,優先級越高(不是我們寫的包名的字母排序)。

那麽我們來看壹下具體實現,首先是建壹個service,然後保證這個service壹直在後臺運行(可以用守護進程,監聽開機廣播等等方式保證壹直存在),然後在service的onStartCommand和onDestroy方法中分別註冊廣播和取消註冊。

  • 上一篇:怎麽給Android應用程序簽名
  • 下一篇:頂部和底部cci源代碼
  • copyright 2024編程學習大全網