代码拉取完成,页面将自动刷新
通话自动录音
一开始为了缕清逻辑,写了多个标记位,洁癖患者可以改造一下,对不起,对不起!
class CallListener : PhoneStateListener() {
override fun onCallStateChanged(state: Int, incomingNumber: String) {
super.onCallStateChanged(state, incomingNumber)
when (state) {
TelephonyManager.CALL_STATE_IDLE
-> {
if (PhoneReceiver.isHujiao && !PhoneReceiver.isGuaduan) {
Log.e(PhoneReceiver.TAG, "等待拨号,然后通话")
PhoneReceiver.isHujiao = false
PhoneReceiver.isZhujiaoTonghua = true
} else if (PhoneReceiver.isZhujiaoTonghua && !PhoneReceiver.isGuaduan) {
Log.e(PhoneReceiver.TAG, "呼叫:挂断电话")
stopRecord()
PhoneReceiver.isZhujiaoTonghua = false
PhoneReceiver.isGuaduan = true
number = ""
} else if (PhoneReceiver.isLaiDian && !PhoneReceiver.isGuaduan && isLaidianZhaiji) {
Log.e(PhoneReceiver.TAG, "接听电话,然后通话")
PhoneReceiver.isLaidianTonghua = true
PhoneReceiver.isLaiDian = false
isLaidianZhaiji = false
} else if (PhoneReceiver.isLaidianTonghua && !PhoneReceiver.isGuaduan) {
Log.e(PhoneReceiver.TAG, "被叫:挂断电话")
stopRecord()
PhoneReceiver.isLaidianTonghua = false
PhoneReceiver.isGuaduan = true
number = ""
}
}
TelephonyManager.CALL_STATE_OFFHOOK -> {
if (PhoneReceiver.isZhujiaoZhaiji) {
Log.e(PhoneReceiver.TAG, "主叫:摘机状态")
isZhujiaoZhaiji = false
if (ACache.get(context).getAsObject(SetActivity.RULE) == null
|| (ACache.get(context).getAsObject(SetActivity.RULE) as Int == 0)
|| (ACache.get(context).getAsObject(SetActivity.RULE) as Int == 1)
) {
prepareRecord()
}
}
if (PhoneReceiver.isLaiDian && !isLaidianZhaiji) {
Log.e(PhoneReceiver.TAG, "被叫:摘机状态")
isLaidianZhaiji = true
if (ACache.get(context).getAsObject(SetActivity.RULE) == null
|| (ACache.get(context).getAsObject(SetActivity.RULE) as Int == 0)
|| (ACache.get(context).getAsObject(SetActivity.RULE) as Int == 2)
) {
prepareRecord()
}
}
}
TelephonyManager.CALL_STATE_RINGING -> {
// 来电状态,电话铃声响起的那段时间或正在通话又来新电,新来电话不得不等待的那段时间。
if (!PhoneReceiver.isLaiDian) {
number = incomingNumber
Log.e(PhoneReceiver.TAG, "响铃:来电号码$incomingNumber")
PhoneReceiver.isLaiDian = true
PhoneReceiver.isGuaduan = false
isLaidianZhaiji = false
}
}
}
}
}
class CallRecorderService : Service() {
override fun onCreate() {
super.onCreate()
val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
telephonyManager.listen(callListener, PhoneStateListener.LISTEN_CALL_STATE)
vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
Log.e(TAG, "启动CallRecordService服务,监听来去电")
}
override fun onBind(intent: Intent): IBinder? {
return null
}
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
return super.onStartCommand(intent, flags, startId)
}
override fun onDestroy() {
super.onDestroy()
Log.e(TAG, "电话录音服务关闭")
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。