问题标签 [android-dialer]
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.
android - Android:如何制作默认拨号器应用程序?
今天我的应用Facetocall被 Google 拒绝了
在请求策略要求的相关权限之前,您的应用似乎没有提示用户成为默认处理程序。请进行必要的更改以符合政策要求并通过声明表重新提交您的应用程序。
默认处理程序功能已在您的声明表中列出,但您的应用程序没有默认处理程序功能。
我的目标是制作一个默认的拨号器应用程序。
这是我的清单
这是我的应用程序启动时所做的事情:
我在这里想念什么?
我尝试再次提交表单,这次我添加了一个在模拟器上显示我的应用程序的视频(我在所有真实设备上也看到了相同的行为)这是我得到的回复:
- 在请求策略要求的相关权限之前,您的应用似乎没有提示用户成为默认处理程序。请进行必要的更改以符合政策要求并通过声明表重新提交您的应用程序。
android - 更改默认拨号器的请求未在某些设备上显示系统对话框
我们的应用需要成为默认的拨号器应用(也称为:“默认电话处理程序”、“默认呼叫应用”),以便它能够在 Android 的新权限策略下拨打电话。
我们使用以下意图显示一个系统对话框,要求用户将我们的应用设为默认:
这适用于我们所有的测试设备,显然对大多数用户而言,但不显示任何对话框并立即返回RESULT_CANCELED
某些设备的结果代码。
通过查看报告,似乎大多数(如果不是所有)报告都来自Huawei
设备(以及来自Huawei
的品牌 - Honor
)。
知道如何在这些设备上显示默认呼叫应用程序对话框吗?
我们可以运行任何其他意图来帮助用户手动将我们的应用程序设置为默认调用应用程序?
android - 如何在未经许可的情况下在我的应用程序中获取拨打的号码
我想在我的应用程序中获取已拨号码,但没有任何 Manifest Permission 标签。我知道如何在获得许可的情况下这样做,
没有 Manifest Permission 标签有没有办法做到这一点?
android-dialer - Android InCallService 拨号器更换 - 扬声器不工作
我已经用我自己的 UI 实现了 IncallService 拨号器替换,并尝试添加基本的拨号器功能。除了设置扬声器外,它们中的大多数(静音、播放 DTMF、保持)都可以工作。我尝试了以下但收到错误“没有在通话中使用扬声器权限”。我正在检查 android 7 和 8 手机。
添加权限:“android.permission.MODIFY_AUDIO_SETTINGS”
android - “电话”应用程序如何显示不在通讯录中的联系人信息?
背景
在 Google 的“电话”应用程序中,有一个选项“来电显示和垃圾邮件”:
因此,如果您接到不在地址簿上的某人或某个组织的电话,但它以某种方式被识别,您会得到一个名称,例如(称为“+972-035283487”):
自 Android M (6.0 - API 23) 以来,应用程序可以替换默认的电话应用程序,然后通过扩展InCallService类,还可以在您呼叫某人或接听电话时提供替代 UI,如此处所示,基于此处。
问题
我想尝试显示与电话应用程序相同的信息,即个人/公司的名称,以防它识别(并且不在通讯簿上)。
我试过的
我试图挖掘通过拨号器的 API 获得的各种东西,但失败了:
android.telecom.Call类的各种字段和功能
Call 类中有getDetails,所以我试图获取里面的内容,并且“ statusHints ”中还有statusHints和“ label ”。这些都没有任何信息(返回 null)。我试图查看“statusHints”的原因是因为这就是我在文档中看到的:
包含通话中 UI 中显示的状态标签和图标。
- 在“电话”应用程序上,按“了解更多”会转到一个网站(此处),其中包含我认为可能是数据来源的链接,但我认为应用程序本身并不使用它。相反,我认为它使用了谷歌的东西。
问题
是否可以获得此 CallerId 信息?如果是这样,怎么做?
电话应用程序是如何做到的?它应该是开源的,所以必须有一些东西可以提供这些信息,对吧?克隆它会以某种方式获得这些信息吗?也许谷歌有自己的来电显示服务?
“callDetails”和“statusHints”有什么用?他们提供什么?
android - TelecomManager.ACTION_CHANGE_DEFAULT_DIALER 在华为 P8 Lite 上返回 RESULT_CANCELED
我想更改 Android 默认拨号器并想制作自己的自定义拨号器。为此,我选择了这个 GIthub repo作为启动项目。这适用于所有其他手机,并且停止在华为 p8 lite 上运行。默认弹出消息不会显示将应用程序设置为默认值。这是代码块
StertActivityforResult
返回RESULT_CANCELED
和消息
找不到任何解决方案。任何帮助将不胜感激。
android - 如何基于谷歌最新的 Android 拨号器应用程序(或基于原版的 ROM,如 Lineage OS)制作拨号器?
背景
从 Android M 开始,可以替换操作系统的拨号器应用程序,这意味着接听电话可以显示您自己的自定义 UI。
这是通过扩展InCallService类并拥有一个处理拨号意图的 Activity 来完成的:
要请求成为默认拨号程序,您可以使用:
问题
API 是如此之大,以至于很少有应用程序甚至尝试过这样的事情,当他们这样做时,与内置的相比,他们做了一个非常小的实现。甚至与谷歌的拨号器相比。
应实现的功能示例,只需在通话期间查看拨号器的 UI:静音、键盘、扬声器、添加通话(会议)、保持、各种状态、视频通话 (?)、...
我发现了什么
尝试制作自己的解决方案时,我找到了一个示例存储库(此处- “simple-phone”),我已经制作了自己的分支(此处),只是为了找出我应该实现多少东西来制作一些东西至少与 Google 提供的功能一样丰富。
我也搜索过其他人之前是否克隆过拨号器,但只找到了 2 个,它们是相当旧的拨号器版本(一个没有通话期间的 UI,另一个有一些问题带有呼叫日志,并且有很多不推荐使用和禁止使用的东西),并且有一些我已经停止考虑使用的错误。
因此,我尝试在此处克隆我发现的 Android 项目。可悲的是,它有一个非常奇怪的文件夹结构,这使得它无法理解应该用它做什么以及如何在 IDE 上导入它:
但是不知何故,我发现的存储库具有不同的文件夹结构,这意味着他们知道应该以某种方式对其进行修改,或者从那时起它已经更改。
我什至尝试从自定义 ROM 克隆拨号器应用程序(在 Github 上搜索,这里),但遇到了类似的问题。
然而不知何故,开发人员设法使其工作。如果您从 ApkMirror 试用“Lineage OS Phone”应用程序,您很可能会正常工作,特别是如果您使用v11而不是v19(v19 在 Pixel 2 上对我有效,但在 Note 8 上无效,但 v11 在两者上都有效) .
也有人说谷歌的拨号器现在可以在越来越多的设备上使用(在这里),但由于某种原因,我看不到它适用于许多设备(在 Note 8 上测试过)。
它让我想起了4 年前,在 Eclipse IDE 时代,我尝试克隆启动器并制作自己的启动器(在此处制作存储库)时遇到的许多问题。这对我来说很奇怪,这和启动器一样难......
到目前为止,唯一对我有用的是使用其中一个示例存储库(此处),并对其进行了工作分叉(此处),但正如我所写的那样,它存在各种问题,例如无法处理调用-日志,当我尝试更新它的 targetSdk 时,它有一些数据库问题(比如这里写的)。也许还有更多我没有注意到的问题。
更新:在这里 ("Koler")找到了另一个存储库,它通常可以正常工作。不是 AOSP,但在某些情况下可以帮助理解事情是如何运作的。
问题
如何克隆最新版本的 Dialer 应用程序并使用它?实现可构建项目的步骤是什么?
为什么一定要这么难?您提供的解决方案是否适用于 Android 内部的其他类型的应用程序(例如启动器)?
作为 Vanilla Android OS 的替代方案(意思是如果没有好的解决方案来使用它),是否可以为不时更新的自定义 ROM 执行此操作,例如 Lineage OS ?
android - Android 自定义拨号器应用,连接未激活
我正在尝试实现一个基本的拨号器应用程序,它也应该处理来电。场景是用户将应用程序设置为默认拨号器,从那时起,每个传入和传出呼叫都应该到达应用程序的 ConnectionService 实现。
我不想覆盖内置的调用 UI,我只需要在 Connection 回调中添加一些额外的逻辑。例如,我想发送一个广播意图,当一个 Conenction 被回答时,等等。
根据这个文档,我想我应该实现一个系统管理的 ConnectionService。
我已经通过以下方式实现了 ConnectionService,它运行良好,在传入或传出呼叫的情况下调用回调:
问题是,如果我注册一个具有 的功能的 PhoneAccount PhoneAccount.CAPABILITY_CONNECTION_MANAGER
,则创建的调用不会变为 - 因为缺少更好的词 - 活动,但正确调用了 Connection 的回调。所以我可以拨出电话,但另一部电话永远不会收到来电通知。或者,如果我从另一部电话开始通话,运行我的应用程序的设备将进入其 onCreateIncomingConnection() 方法,我将能够接听该电话,但发起电话仍会拨号。
我已经按照以下方式注册了 PhoneAccount,我怀疑问题出在此处:
这样注册的账户就不会出现在android的设置中,所以我不能让用户启用它。有没有机会,这是问题的主要原因?
我的清单使用以下权限:
这是活动的注册和 ConnectionService 实现:
android - 是否可以以编程方式更新紧急联系人?
我可以拨打电话,
但我需要通过我的应用程序以编程方式更新 Android 中的紧急联系人。除了默认联系人应用程序之外,还有什么方法可以从任何应用程序更新紧急联系人?更新是指添加、删除和修改任何紧急联系人。
这是一篇帖子,他们讨论了如何更新联系人,但就我而言,我需要更新紧急联系人而不是普通联系人。
android - 安卓。是否有进入默认应用页面的意图?
我有这段代码可以将我的应用程序设置为默认拨号器:
哪个工作正常。它设置在一个复选框上。但是我希望当用户取消选中它时,打算向我显示“默认应用程序”页面。或者,如果不回退到默认的 android 拨号器。那可能吗?
我试过了:
但它什么也没做。还有“ACTION_APPLICATION_SETTINGS”,但这会转到应用程序页面。我想去默认应用