问题标签 [in-call]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
9350 浏览

ios - UIViewController 通话状态栏问题

问题:

通话状态栏消失后,模态呈现的视图控制器不会向后移动,顶部留下 20px 的空白/透明空间。


正常:没有问题

在此处输入图像描述


通话中:没有问题

在此处输入图像描述


通话中消失后:

在顶部留下一个 20 像素高的空白/透明空间,显示下方的橙色视图。但是状态栏仍然存在于透明区域上。导航栏还为状态栏留出了空间,它的位置太低了 20 像素。

在此处输入图像描述

在此处输入图像描述


  • 基于 iOS 10
  • 模态呈现的视图控制器
  • 自定义模态演示
  • 后面的主视图控制器是橙色的
  • 不使用自动布局
  • 当旋转到Landscape时,20px In-Call Bar 离开并仍然留下 20px 间隙。
  • 我选择不以横向显示状态栏。(即大多数股票应用程序)

我试着听 App Delegates:

还查看基于控制器的通知:

当我为上述所有四种方法记录呈现视图的框架时,该框架始终位于 (y: 0) 原点。


更新

视图控制器自定义模态演示

0 投票
0 回答
849 浏览

android - InCallService - 在 Android Nougat 中不起作用

我使用InCallService替换了默认呼叫服务,它在 Android 6 (Marshmallow) 中运行良好。

但是,在带有 Android Nougat(7.0 版)的三星 S8 中无法正常工作。没有收到任何回电InCallService

Android Nougat 是否需要任何其他权限才能访问InCallService

0 投票
0 回答
79 浏览

xamarin.ios - Xamarin iOS 中出现通话状态栏时如何调整视图大小?

在我的 xamarin 应用程序中,当存在通话状态栏时,我需要调整视图的大小。根据 iOS 的 xamarin 文档,我尝试使用 ObserveWillChangeStatusBarFrame 通知(WillChangeStatusBarFrameNotification 在 Xamarin iOS 中已弃用),它永远不会在通话状态栏出现时触发。

没有关于此主题的更多文档。

0 投票
0 回答
115 浏览

android - Java 安卓 | 在通话中以编程方式使用通话中的数字键盘

虽然我知道这种问题已经被问过几次了,但所提供的答案都不能满足我的需求,所以我想问大家:

通话时,是否可以在应用程序内的通话键盘上激活号码?(即:我可以在通话时使用我的应用程序以编程方式“按 3”或“按 9”吗?)

我发现通过在 android 中使用 DTMF 音调使用隐藏的内部 API(特别是内部电信 API)在技术上是可行的,但是当 Android P 进入市场时,这将不再可行(由于限制使用隐藏和未记录的 API 不是 SDK 的标准),使该解决方案成为未来证明的对立面。

由于各种原因,我也不能要求用户使用不同的默认拨号器应用程序。(我知道这也是另一个潜在的解决方案,但由于我正在工作的应用程序的范围,期望每个用户都更改他们的默认调用应用程序是不可行的)

如果有其他方法可以做到这一点,我将不胜感激。

0 投票
1 回答
1203 浏览

android - 我们可以从 InCallService 或 Telecom.Call 获取呼叫详细信息,例如来电号码和联系方式吗?

我实际上想覆盖默认呼叫屏幕并处理我的活动中的所有内容。我面临的问题是如何获取来电者号码,如果它是来自 Telecom.Call 对象的存储在我手机中的联系人,因为这是 InCallService onCallAdded 方法中唯一可用的对象。

提前感谢您的帮助。

这是接受和拒绝呼叫的活动。现在屏幕上只显示 2 个按钮来接听和拒绝来电,它工作正常,我还需要在屏幕上显示联系方式。

0 投票
0 回答
291 浏览

android - 无法检查三星 J5 上的对象 com.android.incallui.service.SecCallPopupService

我有一个我认为与 Android 权限有关的问题,但是我需要您的一些专业知识来确认它。

我在一些呼叫处理场景中测试了旧的 Samgung J5(未植根)和 Android 8.1.0、Appium 1.10.0 和 UiAutomator2 和 ADB 10.0.40(在管理模式下),在这些场景中我需要检查是否确定显示元素(身份、通话时长、保持激活、转接信息等)显示给用户。我已经看到了多种解决方案来完成这项任务,包括使用 adb 来完成,但我们只关注这个问题,只使用显示元素 (GUI)。

场景,用户接听电话。

com.android.incallui.service.SecCallPopupService 开始行动:

用户接听电话

当我尝试检查 com.android.incallui.service.SecCallPopupService 窗口时,Appium 找不到它:

Appium检查员

在 UiAutomatorViewer 上都没有:

UitAutomatorViewer

在评论链接(xml 转储)上,您可以看到 Appium 和 UiAutomatorViewer 可以“看到”的显示元素。使用命令 adb shell uiautomator dump /data/local/tmp/uidump.xml 获得了相同的结果

之后,我安装了 Appium Studio 并试用了 Appium 官方的“Inspector”,结果是:

Appium Studio Object Spy具有对所有显示元素的完全访问权限。非常有趣...经过一些研究后,我发现当我单击 Object Spy 功能时,设备上立即安装了以下包 com.expitest.uiautomator.test(在后台运行),我认为它负责检索所有界面元素.

在评论链接 (logcat) 在 Appium Studio 上 doind object spy 之后的一些 logcat 日志:

分析 logcat 我们可以看到 Appium studios 正在请求
{"response":"true","params":[],"command":"richDump"} 并且包使用某种 node:android.view.accessibility。可访问性节点。也许使用诸如“可访问性树”节点之类的东西来获取元素 ?我不知道...

我在 Stackoverflow 上阅读了一些类似的问题,但一些解决方案涉及 root 设备或使用 de ADB(它不是一个选项), 尝试 su root 设备和 chmod 777 /data/local/tmp,但如果真的有必要,如何那么 Appium Studio 可以读取所有显示元素吗?

您是否知道任何其他解决方案可以让我在没有 root 设备的情况下获取所有界面元素?我怎么称呼“richDump”?

谢谢你的帮助。

0 投票
1 回答
1895 浏览

android - 如果我的应用程序被选为默认拨号器应用程序。是否可以有意在拨号器中显示呼叫

我已经实现了清单中的 CallService,如下所示:

就是这样:

现在这就是我想要的。如果我的电话是,那么我希望它通过我的通话活动。但如果它是一个不同的电话号码,我希望它回落到电话拨号器。这可能吗?我已经看到,如果我不添加 FLAG_ACTIVITY_NEW_TASK 它将崩溃,从而使手机主拨号器出现。但这只能工作一次,而且我不会使用这样的黑客来使其工作。那么还有其他想法吗?

编辑:

我正在使用带有 Android Pie 的 Google Pixel

我试图实现@marmor 建议的逻辑,但仍然不起作用。

这是我的创建活动:

我在 AndroidManifest 中添加了: <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 并且还有以下代码:

这是我得到的错误:

我也试过做:

不做wm.addView(window.decorView, params)

但我只是明白了:我做错了什么? 在此处输入图像描述