Android 监听来电的一种方式

66 阅读1分钟

1 添加权限

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

2 注册BroadcastReceiver

class XXReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        try {
            if (intent!!.action.equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED)) {
                // 处理来电
                val state = intent.getStringExtra(TelephonyManager.EXTRA_STATE)
                if (state == TelephonyManager.EXTRA_STATE_RINGING) {
                    //来电话了
                }
            }
        }catch (e:Exception){

        }
    }
}

3 声明BroadcastReceiver

       <receiver android:name=".CallReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>