美文网首页
安卓开发监听来电通知状态

安卓开发监听来电通知状态

作者: 伪装的狼 | 来源:发表于2019-12-24 16:20 被阅读0次

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);
}

相关文章

网友评论

      本文标题:安卓开发监听来电通知状态

      本文链接:https://www.haomeiwen.com/subject/vpdfoctx.html