Существует ли способ проверить и видеть, существует ли Действие на Вашем устройстве? Если у меня есть видеосвязь YouTube, я хочу указать, что она открывается в YouTube PlayerActivity. Однако я не хочу отказывать, если по некоторым причинам у них нет его.
Существует ли способ проверить и видеть, существует ли действие? Я не думаю, что могу поймать исключение на этапе выполнения, так как startActivity () не бросает его.
Не думаю, что смогу уловить время выполнения исключение
На самом деле это работает:
try {
startActivity(new Intent(..));
} catch (ActivityNotFoundException e) {
Toast.makeText(this, "Not installed.", LENGTH_SHORT).show();
}
Вы можете создать объект Intent с необходимой информацией о компоненте, а затем проверить, вызывается ли намерение или нет. Я наткнулся на этот фрагмент здесь, на SO , нет ссылки на текущую беседу.
private boolean isCallable(Intent intent) {
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}