2012-05-24 1 views
3

Я просто хочу открыть приложение для телефонного звонка с Android-устройством. Я не хочу предоставлять этому приложению номер телефона. Просто хочу открыть его.
Я использую имя пакета телефона, чтобы открыть его. Потому что я могу открыть любое приложение, которое я хочу получить через это имя пакета, с помощью кода ниже.

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.android.contacts"); startActivity(launchIntent);

Приложение для открытых телефонных приложений для Android

Я не могу открыть Телефон и Контакты приложений с указанным кодом. В чем проблема?

ответ

18

Intents предназначены (здесь нет пены), чтобы дать вам более общий способ доступа к таким действиям, как открытие файла. Если вам нужно было указать пакет того, что вы хотели сделать, это было бы очень ограничено. Тем не менее, вот некоторые из намерений, которые могут быть тем, что вам нужно.

//For the contacts (picking one) 
Intent i = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
//For the contacts (viewing them) 
Intent i = new Intent(Intent.ACTION_VIEW, ContactsContract.Contacts.CONTENT_URI); 
//For the dial pad 
Intent i = new Intent(Intent.ACTION_DIAL, null); 
//For viewing the call log 
Intent i = new Intent(Intent.ACTION_VIEW, CallLog.Calls.CONTENT_URI); 

Сделайте себе useful intents файл куда-нибудь, чтобы сэкономить время в будущем, вы будете благодарить меня позже, когда-нибудь.

Конечно, чтобы начать эти намерения, вы должны сделать startActivity(i); для всех, кроме первого, так как вам нужен контакт, и вам понадобится startActivityForResult(i);, но это уже другая история.

+0

Я не хочу выбирать звонок. Я просто хочу открыть собственный телефонный звонок. – MobiDev

+0

Вы даже пробовали их? Потому что, если бы вы это сделали, вы бы увидели, что они работают. –

+0

ACTION_DIAL действительно работает, но я хотел открыть его, используя имя пакета. Если я использую один из ваших методов, мне нужно жестко закодировать его, чтобы открыть приложение «Телефон и контакты», которое плохо. Я могу открыть любое приложение, которое я хочу, с именем пакета, за исключением этих двух приложений. Попробуйте мой код ... – MobiDev

2

общественности статической конечной строки ACTION_DIAL

С: API Level 1 Активность Действие: Наберите номер, как указано в данных . Это показывает пользовательский интерфейс с набираемым номером, позволяя пользователю явно инициировать вызов. Ввод: если ничего, пустой набор запущен;

Источник: http://developer.android.com/reference/android/content/Intent.html#ACTION_DIAL

http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL может быть также то, что вы ищете.

Если вы хотите начать телефонный звонок из Activity, просто используйте http://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent) из Контекста Деятельности.

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

  • Нет связанных вопросов^_^