android - 如何获取android默认拨号盘呼叫断开按钮单击事件
问题描述
我尝试获取默认拨号盘呼叫断开按钮单击以获取呼叫状态例如:活动、断开连接、断开连接等。
我需要呼叫状态而不使用 InCallService 类。因为 IncallService 类仅响应自定义拨号应用程序。愿你帮我找到合适的答案。谢谢
解决方案
听起来您可能想查看 Android PhoneStateListener 类:
假设您正在进行通话,当用户通过点击通话断开按钮结束通话时,您将看到状态更改为空闲。
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_RINGING:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
}
}
检查您是否有权获取所需的特定信息:
请注意,对某些电话信息的访问是受权限保护的。您的应用程序不会收到受保护信息的更新,除非它具有在其清单文件中声明的适当权限。在适用权限的情况下,它们会在相应的 LISTEN_ 标志中注明。
如果您想实际拦截按钮单击并执行除结束通话以外的其他操作,AFAIK 不支持此操作。
推荐阅读
- python - django过滤器中的条件搜索
- javascript - .env 文件如何真正保护我的 API 密钥?
- optimization - 在 minizinc 中使用 forall() 谓词作为没有“约束”的赋值语句
- java - Java Spring控制器拒绝所有期望GET的请求
- xamarin - Xaramin Forms iOS 应用程序在启动时崩溃
- angular - 角度单元测试 - 在测试中更改组件变量
- r - 当我尝试将我的 R 文件编入 PDF 时,PDF 文件中只显示了绘图的智能部分
- react-testing-library - react-testing-library - 如何模拟文件上传到元素?
- flutter - 如何在 Flutter 中创建类似 Tinder 的堆叠卡片?
- macos - 为什么我无法使用 ssh 打开应用程序?