2015-02-09 2 views
0

Я пытаюсь найти действия, у которых есть фильтры намерений, которые будут использоваться для телефонных звонков. Это то, что я пытался сделать, чтобы получить все доступные виды деятельности:Intent ACTION_CALL android

Intent callIntent = new Intent(Intent.ACTION_CALL); 
    PackageManager pm = context.getPackageManager(); 
    List<ResolveInfo> resolveInfo = pm.queryIntentActivities(callIntent, 0); 

Это приводит список resolveInfo быть нулевым, что означает отсутствие активности было найдено, чтобы сделать телефонный звонок. Несмотря на это, если я использую следующее намерение, встроенный в приложение для Android, чтобы сделать телефонные звонки запускается:

Intent callIntent = new Intent(Intent.ACTION_CALL); 
         callIntent.setData(Uri.parse("tel:" + 8888888888)); 
         activity.startActivity(callIntent); 

Моя конечная цель состоит в том, чтобы использовать телефон приложение, которое используется в HTC ONE M8 как часть CAR APP.

Любые идеи?

ответ

0

Вы должны добавить линию SetData в своих намерениях, как:

callIntent.setData(Uri.parse("tel:" + 888888888)); 

то полный код будет:

Intent callIntent = new Intent(Intent.ACTION_CALL); 
    callIntent.setData(Uri.parse("tel:" + 888888888)); 
    PackageManager pm = getPackageManager(); 
    List<ResolveInfo> resolveInfo = pm.queryIntentActivities(callIntent, 0); 
    Log.d("data", resolveInfo.size()+""); 

Теперь вы нашли количество доступных мероприятий.

+0

Спасибо, добавьте строку .setData (..) сделали разницу. Теперь я вижу все действия, которые можно использовать для телефонного звонка! – nttCoder

+0

Нет проблем, но решить вопрос –

+0

Это только разрешило часть моего вопроса. Я пытаюсь использовать приложение Car App HTC ONE M8. Но, вероятно, если разработчик приложения не дает намерения, и я не знаю имя пакета, я не смогу использовать его. Правильно ли мое предположение? – nttCoder

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