2015-11-10 4 views
0

У меня есть намерение, которое набирает номер следующим образом:Как не показывать приложение Chooser Android

Intent intent = new Intent(isTelephonyEnabled() ? Intent.ACTION_CALL : Intent.ACTION_VIEW); 
intent.setData(Uri.parse(number)); 
cordova.getActivity().startActivity(intent); 
callbackContext.success(); 

Функция isTelephoneEnabled() как раз убеждается, что менеджер телефонии существует:

private boolean isTelephonyEnabled(){ 
    TelephonyManager tm = (TelephonyManager)cordova.getActivity().getSystemService(Context.TELEPHONY_SERVICE); 
    return tm != null && tm.getPhoneType() != TelephonyManager.PHONE_TYPE_NONE; 
} 

проблема заключается в том, что выбирает приложение и спрашивает, если я хочу набирать номер через Skype или обычное приложение для телефона. Как предотвратить открытие приложения? Я хочу, чтобы он сразу переключался на стандартный вариант (обычный телефон).

ответ

0

Я просто даю вам идею делать то, что вы хотите. Вы можете получить список всех видов деятельности, которые могут получить ваше намерение. Используйте для этого PackageManager.queryIntentActivities. Этот метод возвращает список объектов ResolveInfo. И вы можете получить имя Деятельности из ResolveInfo

Затем вы должны выбрать одно действие, которое вы хотите открыть, и отправить свое намерение на это мероприятие (например, используйте Intent.setComponent).

+0

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

+0

Я могу просто посоветовать исследовать эту проблему. Вероятно, обычное приложение телефона имеет стандартное имя. Или, по крайней мере, вы можете устранить некоторые распространенные приложения, которые вам не нужны (например, skype и т. Д.). С другой стороны, пользователь может использовать альтернативное приложение для телефона, поэтому, вероятно, лучше спросить у него, какое приложение использовать или добавить параметр в приложение, которое выбирает телефонное приложение. Я полагаю, что такой вариант был бы лучшим решением. – ivan

+0

Хорошо, спасибо, я понял. –

Смежные вопросы