Android 请求更改默认拨号程序isn';t在某些设备上显示系统对话框

Android 请求更改默认拨号程序isn';t在某些设备上显示系统对话框,android,huawei-mobile-services,android-dialer,Android,Huawei Mobile Services,Android Dialer,我们的应用程序需要成为默认拨号器应用程序(也称为:“默认电话处理程序”、“默认通话应用程序”),这样它就能够在安卓系统下拨打电话 我们使用以下意图显示一个系统对话框,要求用户将我们的应用程序设为默认应用程序: Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER); intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME,

我们的应用程序需要成为默认拨号器应用程序(也称为:“默认电话处理程序”、“默认通话应用程序”),这样它就能够在安卓系统下拨打电话

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

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\u cancelled
RESULT代码

通过查看这些报告,如果不是所有报告都来自
华为
设备(以及
华为
的品牌--
荣誉
),那么大多数报告似乎都来自
华为
设备

知道如何在这些设备上显示默认的呼叫应用程序对话框吗?

我们可以运行任何其他意图来帮助用户手动将我们的应用程序设置为默认呼叫应用程序吗?

一些Google返回的消息,荣誉设备要求您在“设置”中更改默认拨号程序应用程序,可能直接将意图启动到该“设置”页面?至于“特定设置”页参数,您必须检查荣誉设备

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

然后,您可以在应用程序中处理结果(通过检查您的拨号程序现在是否为默认拨号程序),或者告诉用户故障情况

可能添加以下内容解决问题:

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

您解决了这个问题吗?我在华为设备上也有同样的用途。