1、声明权限
代码块:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
2、onCreate代码
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private PhoneStateListener phoneStateListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listenerPhoneState();
}
}
3、监听方法
private void listenerPhoneState(){
phoneStateListener = new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String phoneNumber) {
super.onCallStateChanged(state, phoneNumber);
switch (state){
case TelephonyManager.CALL_STATE_RINGING:
Log.d(TAG, "来电响铃!");
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.d(TAG, "电话挂断!");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.d(TAG, "正在通话中。。。。。。");
break;
default:
break;
}
}
};
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (tm!=null){
tm.listen(phoneStateListener,PhoneStateListener.LISTEN_CALL_STATE);
}
}
4、注销监听
@Override
protected void onDestroy() {
super.onDestroy();
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(phoneStateListener,PhoneStateListener.LISTEN_NONE);
}
网友评论