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

时间:2018-10-08 18:13:17

标签: android phone-call device-policy-manager

我们已从playStore收到以下政策通知:

您的应用清单请求“呼叫日志”权限组(例如READ_CALL_LOG,WRITE_CALL_LOG,PROCESS_OUTGOING_CALLS)
必须在设备上主动将其注册为默认的Phone或Assistant处理程序。

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

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

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您不能通过编程将其设置为默认值。关键是用户可以选择默认值,因此他们可以选择要获取其短信和通话的应用程序。您也许可以使用root来执行此操作,但是别无其他。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

  

自Q开始不再支持此功能,请使用   RoleManager.createRequestRoleIntent(String)与   改为RoleManager.ROLE_DIALER

当我按照清单fie中的意图过滤器遵循freezo9答案时,该代码实际上起作用了:-https://stackoverflow.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>