代码之家  ›  专栏  ›  技术社区  ›  marmor

更改默认拨号程序的请求在某些设备上未显示系统对话框

  •  1
  • marmor  · 技术社区  · 6 年前

    我们的应用程序需要成为默认的拨号应用程序(也称为:“默认手机处理程序”,“默认通话应用程序”),这样它就可以在Android系统下进行通话 new permissions policy .

    我们使用以下意图显示系统对话框,要求用户将我们的应用设为默认应用:

    Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER);
    intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getPackageName());
    startActivityForResult(intent, RC_DEFAULT_PHONE);  
    

    这在我们所有的测试设备上都能很好地工作,而且显然对大多数用户都是如此,但是没有显示任何对话框,并且立即返回 RESULT_CANCELED 一些设备的结果代码。

    通过查看报告,似乎大多数报告都来自 Huawei 设备(和来自 华为 的品牌—— Honor )

    知道如何在这些设备上显示默认的呼叫应用程序对话框吗?
    我们可以运行其他任何意图来帮助用户手动设置我们的应用程序是默认的呼叫应用程序吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   kkarakk    6 年前

    一些google返回荣誉设备要求您在设置中更改默认拨号程序应用程序,或者直接启动设置页面的意图?对于特定的设置页参数,您必须检查荣誉设备

    startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);
    

    然后你可以处理你的应用程序中的结果(通过检查你的拨号器是否是默认的),或者告诉用户失败。