Вопрос по android – Очистить приложение по умолчанию для Android

1

Можем ли мы знать, что пользователь установил приложение по умолчанию для определенного действия? я. е. android.intent.action.CALL_PRIVILEGED

Предположим, что мое приложение также предоставляет вызов по действию Call_privilaged. но пользователь установил встроенную звонилку как средство запуска по умолчанию для действия Call_privilaged.

У меня вопрос, могу ли я программно знать, что пользователь установил номеронабиратель по умолчанию для запуска Call_privalged.

Благодарю вас.

Ваш Ответ

2   ответа
0

Ты можешь использоватьresolveActivity() намерения или PackageManager.

Intent intent = ...
ComponentName componentName = intent.resolveActivity(getPackageManager());
if (componentName.getPackageName().equals("android")) {
    // No default selected
    ...
} else if (componentName.getPackageName().equals(getPackageName())) {
    // We are default
    ...
} else {
    // Someone else is default
    ...
}

Если вы не обрабатываете намерение самостоятельно, вам также может потребоваться нулевая проверка для случая, когда нет приложения, способного обработать намерение.

Не уверен, что это работает на всех устройствах и всех версиях Android. Протестировано на Android 4.1-4.3 на устройствах Nexus.

1

Can we know that user has set default application for particular action? i. e. android.intent.action.CALL_PRIVILEGED

Я не думаю, что есть простой способ сделать это. призваниеgetPreferredActivities() наPackageManagerи просеиватьList<IntentFilter> Вы вернетесь, чтобы попытаться найти соответствие для вашегоIntent может работать.

Похожие вопросы