如何通过为用户提供将其设为默认应用程序的选项,在设备上将应用程序设为默认电话或助理处理程序

Posted

技术标签:

【中文标题】如何通过为用户提供将其设为默认应用程序的选项,在设备上将应用程序设为默认电话或助理处理程序【英文标题】:How to make an application default phone or Assistant handler on the device by giving user an option to make it default app 【发布时间】:2019-03-13 11:01:32 【问题描述】:

我们收到了来自 playStore 的政策通知:

您的应用清单请求呼叫日志权限组(例如 READ_CALL_LOG、WRITE_CALL_LOG、PROCESS_OUTGOING_CALLS)它必须主动注册为设备上的默认电话或助理处理程序。

我无法理解设备上的助理处理程序是什么。 欢迎任何意见或建议。

android 应用程序满足要求的最低要求是什么。

【问题讨论】:

【参考方案1】:

查看文档: https://developer.android.com/reference/android/telecom/TelecomManager#ACTION_CHANGE_DEFAULT_DIALER

示例代码:

Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER);
intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getActivity().getPackageName());
startActivity(intent);

【讨论】:

【参考方案2】:

除了marmor所说的android 10 Q状态的更新文档:-

自 Q 起不再支持此功能,请使用 RoleManager.createRequestRoleIntent(String)RoleManager.ROLE_DIALER 代替。

当我按照 freezo9 回答有关清单文件中的意图过滤器时,代码实际上有效:- https://***.com/a/55716209/7552894

添加这些:-

<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.DIAL"/>

<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>

<data android:scheme="tel"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.DIAL"/>

<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

【讨论】:

我们应该在哪个活动下添加此代码..请帮助我。 你知道如何为短信应用做同样的事情吗?【参考方案3】:

您不能以编程方式将其设为默认值。重点是用户可以选择默认设置,这样他们就可以选择使用哪个应用程序来获取他们的短信和电话。您可以使用 root 执行此操作,但没有其他操作。

【讨论】:

请检查某些应用程序,例如 Truecaller,他们能够做到这一点。 他们可以要求用户将其设为默认值。如果有一种方法可以让他们真正成为程序化的,那么谷歌会很快修复它的一个错误。就像它不可能以编程方式成为默认的 SMS 应用程序一样,并且已经存在多年了。 我想知道如何让应用程序表现得像 truecaller,它让用户可以选择使其成为默认电话应用程序。代码方面的最低要求。 他们可能正在做的只是显示默认电话应用程序的设置屏幕。这是可能的(你可以对 SMS 做同样的事情),但用户需要实际设置它。 @GabeSechan 你介意解释一下如何要求吗?成为默认助理处理程序究竟意味着什么?我们有一个提供额外用户呼叫统计的应用程序,它不是电话应用程序,但它需要这些权限。助理处理程序是要走的路吗?【参考方案4】:

顺便说一句,如果您的应用程序不是电话处理程序,但您仍然需要它们才能使功能正常工作,您可以尝试获得豁免(请参阅文章的最后一段): https://support.google.com/googleplay/android-developer/answer/9047303?hl=en 这样您的应用就不会成为电话处理程序,但仍然可以获得这些权限。

【讨论】:

该表单多次尝试绊倒您并让您承认您正在尝试对与表单无关的评论执行“未经授权的使用”,但基于他们的团队的黑猩猩认为他们能找到或找不到。

以上是关于如何通过为用户提供将其设为默认应用程序的选项,在设备上将应用程序设为默认电话或助理处理程序的主要内容,如果未能解决你的问题,请参考以下文章

我如何将其设为 UDF

声纳问题:删除此“\”,添加另一个“\”以对其进行转义,或将其设为原始字符串

vue-cli2.X中引入高德地图,将其设为全局对象

C# 覆盖公共成员并将其设为私有

谷歌地图以用户当前位置为中心加上默认位置作为备份

MS Access 中的特殊数字格式