Android來電號碼獲取的方法很簡單,雖然Dalvik上的程序都是Java寫的,可是仍然能夠處理系統事物,使用PhoneStateListener;類能夠監測話機狀態,而TelephonyManager能夠獲取電話服務的實例,寫代碼時不要忘了
在androidmanifest.xml中加入權限。
須要引入兩個Package
java代碼:
- import android.telephony.PhoneStateListener;
- import android.telephony.TelephonyManager;
- MyPhoneStateListener phoneListener=new MyPhoneStateListener(); //咱們派生的類
- TelephonyManager telephonyManager =(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
- telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
複製代碼
這裏作下簡單的調試,直接使用Logcat查看來電號碼:
java代碼:
- import android.content.Context;
- import android.telephony.PhoneStateListener;
- import android.util.Log;
- public class MyPhoneStateListener extends PhoneStateListener {
- Context context;
- @Override
- public void onCallStateChanged(int state,String incomingNumber){
- Log.e("PhoneCallState", "Incoming number "+incomingNumber); //incomingNumber就是來電號碼
- }
複製代碼
整個來電軟件製做十分簡單,Android平臺在各方面都比較智能,加上一個BOOT_COMPLETED獲取,保證開機自動運行,一個來電通就很容易的製做完成了。