gpt4 book ai didi

android - 将我的应用设置为默认拨号器而不询问 Android 10 (Q) 中的选项?

转载 作者:行者123 更新时间:2023-12-05 00:19:35 25 4
gpt4 key购买 nike

我目前无法让我的应用程序向用户发送对话框以在 API 29 上设置默认拨号器,但相同的代码在 Android 10 (Q) 下运行良好。
我测试了这个No response from intent to prompt user to set default handler for SMS示例也是如此,但不适用于我的。然后我关注了https://developer.android.com/guide/topics/permissions/default-handlers但没有解决我的问题。 API 级别 29 或更高版本是否有任何特殊更改以让用户设置默认应用程序?

Here's my working code (for below Android 10)

TelecomManager telecomManager = (TelecomManager) getSystemService(TELECOM_SERVICE);
if (!getPackageName().equals(telecomManager.getDefaultDialerPackage())) {
Intent intent = new Intent(ACTION_CHANGE_DEFAULT_DIALER)
.putExtra(EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getPackageName());
startActivity(intent);
}

What I'm getting in logcat is here


enter image description here

最佳答案

是的,API 发生了变化,请在此处查看上一个 API 中的注释:
https://developer.android.com/reference/android/telecom/TelecomManager#ACTION_CHANGE_DEFAULT_DIALER
并在此处查看新 API:
https://developer.android.com/reference/android/app/role/RoleManager
基本上,您需要执行以下操作:

RoleManager roleManager = (RoleManager) getSystemService(Context.ROLE_SERVICE);
Intent intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_DIALER);
startActivityForResult(Intent, CHANGE_DEFAULT_DIALER_CODE); // you need to define CHANGE_DEFAULT_DIALER as a static final int
然后你通过实现 onActivityResult 来捕捉响应在你的 Activity 中。

关于android - 将我的应用设置为默认拨号器而不询问 Android 10 (Q) 中的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62614380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com