Вызов номера из приложения Android из программы Native call programatically

Я использую последующее разрешение сделать телефонный звонок из своей заявки

< uses-permission android:name="android.permission.CALL_PHONE" /> 

Вот мой код для звонка.

  Intent iniCall=new Intent(Intent.ACTION_CALL); iniCall.setData(Uri.parse("tel:9849199291"); startActivity(iniCall); 

Но он запускает приложение Skype вместо запуска приложения по умолчанию.

Как позвонить из вызывающего приложения по умолчанию?

Для устройств Pre-Lollipop вам необходимо использовать com.android.phone качестве имени пакета, а в Lollipop вам необходимо использовать com.android.server.telecom качестве имени пакета.

Попробуйте этот код:

 Intent iniCall=new Intent(Intent.ACTION_CALL); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { iniCall.setPackage("com.android.server.telecom"); }else{ iniCall.setPackage("com.android.phone"); } iniCall.setData(Uri.parse("tel:"+9849199291); startActivity(iniCall); 

Я надеюсь, что это помогает!

Mainactivity code:

  button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { String phnum = edittext.getText().toString(); Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:" + phnum)); startActivity(callIntent); } }); 

проявляются:

 <uses-permission android:name="android.permission.CALL_PHONE" /> 

Я знаю, что это глупый вопрос, но на устройстве есть SIM-карта? Он должен запустить приложение по умолчанию для события «звонок», которое можно установить в настройках. Таким образом, есть два варианта:

  1. На вашем устройстве нет SIM-карты (слота), поэтому приложение телефона не появится.
  2. Приложение вашего устройства по умолчанию для вызова Intent – это Skype, поэтому он не попросит вас выбрать.