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获取,保证开机自动运行,一个来电通就很容易的制做完成了。