Программно изменить «Использовать по умолчанию для этого действия» - PullRequest
5 голосов
/ 06 февраля 2012

У меня нормальная звонилка "Телефон", и у меня новое приложение "звонилка". Теперь, если я выберу «Использовать по умолчанию для этого действия» и нажму на приложение «Звонилка», то каждый раз, когда я нажимаю кнопку телефона, приложение «Звонилка» запускается автоматически. Но как я могу изменить это в коде?

Где хранится это предпочтение?

А как это отображается? это сопоставлено строкой намерения действия Android?

например, Intent.ACTION_CALL в паре с каким-либо приложением, например, приложение 'Dialer', которое будет приложением по умолчанию, которое будет запускаться каждый раз, когда вызывается Intent.ACTION_CALL ...

Спасибо

enter image description here

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

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

Intent i = new Intent(android.provider.Settings.Aplications);
startActivity(i);

или что-то в этом роде

0 голосов
/ 08 июня 2019
 @RequiresApi(api = Build.VERSION_CODES.M)
    private void chnagedialer() {
        TelecomManager systemService = this.getSystemService(TelecomManager.class);
        if (systemService != null && !systemService.getDefaultDialerPackage().equals("com.android.contacts")) {
            startActivity((new Intent(ACTION_CHANGE_DEFAULT_DIALER)).putExtra(EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME,"com.android.contacts" ));
        }

    }
0 голосов
/ 06 июня 2018

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

    Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER)
        .putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getPackageName());
    if (intent.resolveActivity(getPackageManager()) != null) {
      startActivityForResult(intent, REQUEST_CODE_SET_DEFAULT_DIALER);
    } else {
      Log.w(getLocalClassName(), "No Intent available to handle action");
    }

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...