編輯:關於Android編程
現在大多數的應用都會開機自啟動,來電管家更是如此,添加了開機自啟動監聽服務後,開機後即使你沒有打開來電管家應用程序,一樣可以攔截來電信息。
主要步驟:
1. 要有開機要啟動的service或activity(這裡開機要啟動的當然就是ListenService了)
2. 編寫一個BroadcastReceiver用以捕獲ACTION_BOOT_COMPLETED這條廣播,並在捕獲之後啟動我們要啟動的Activity或service。
BootCompletedReceiver.java
package com.example.callmanager; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; public class BootCompletedReceiver extends BroadcastReceiver { SharedPreferences spf; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { spf = context.getSharedPreferences("setting", Activity.MODE_PRIVATE); Intent newIntent = new Intent("com.example.callmanager.ListenService"); newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //注意,必須添加這個標記,否則啟動會失敗 System.out.println("start by broadcast"); if(spf.getBoolean("isStartListen", false)) context.startService(newIntent); } } }
這裡同樣取出了用戶的設置信息,如果用戶未啟用監聽服務,則開機不自啟動監聽服務,更加人性化。
3. 在AndroidManifest.xml配置文件中注冊我們的BroadcastReceiver
4. 在AndroidManifest.xml配置文件中添加允許我們捕獲該廣播的權限
這樣,通過以上四個步驟,就可實現Activity或Service的開機自啟動。
至此,該來電管家的基本攔截功能,以及顯示攔截信息,定時攔截,監聽開關,攔截模式功能已全部實現,當然了,該應用還可以繼續完善,如,將攔截記錄添加通知欄,制作應用啟動畫面,添加手勢滑動,添加短信攔截等更加豐富的功能。
附:完整代碼下載
我不知道大家有沒有這樣問題,項目做多了,就容易忽略最最基礎的知識,其實我也是在最近發現了自己也存在這樣的問題。因此打算做一些最基礎的知識的調研來重新學習和回顧這些容易被忽
在之前的第一篇文章: android自動化測試中hierarchyviewer和uiautomatorviewer獲取控件信息的方式比對(1) 我說uiauto
我們要實現的效果如下:在這之前先帶大家了解一下xml bitmap,何為XML Bitmap?XML Bitmap 是一個用XML定義的文件放在資源目錄,定義的對象是圖片
1、概述 今天給大家帶來SurfaceView的一個實戰案例,話說自定義View也是各種寫,一直沒有寫過SurfaceView,這個玩意是什麼東西?什麼時候