Запрос на изменение номеронабирателя по умолчанию не отображает системный диалог на некоторых устройствах

Наше приложение должно стать приложением для набора номера по умолчанию (также известным как «обработчик телефона по умолчанию», «приложение для вызовов по умолчанию»), чтобы оно могло совершать звонки через новая политика разрешений.

Мы используем следующее намерение, чтобы показать системный диалог, чтобы попросить пользователя сделать наше приложение приложением по умолчанию:

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 устройств (и от бренда Huawei - Honor).

Есть идеи, как отобразить диалоговое окно приложения вызова по умолчанию на этих устройствах?
Есть ли какие-либо другие намерения, которые мы можем использовать, чтобы помочь пользователю вручную установить наше приложение в качестве вызывающего приложения по умолчанию?


person marmor    schedule 15.01.2019    source источник
comment
Вы решили эту проблему? У меня такая же проблема на устройствах Huawei.   -  person remain4life    schedule 28.01.2020


Ответы (2)


некоторые поисковые запросы вернули, что устройства чести требуют, чтобы вы изменили приложение для набора номера по умолчанию в настройках, может быть, запустить намерение на этой странице настроек напрямую? что касается конкретного аргумента страницы настроек, вам нужно будет проверить устройство чести

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

затем вы можете обработать результат в своем приложении (проверив, является ли ваш номеронабиратель по умолчанию), иначе сообщите пользователю об ошибке

person kkarakk    schedule 15.01.2019

Возможно, добавление следующих <intent-filter> решит проблему:

<intent-filter>
      <action android:name="android.intent.action.DIAL" />
      <category android:name="android.intent.category.DEFAULT" />
      <data android:scheme="tel"/>
</intent-filter>
person Ali Shirvani    schedule 12.09.2019