Вызов номера из приложения 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 вместо запуска приложения по умолчанию.

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

Solutions Collecting From Web of "Вызов номера из приложения Android из программы Native call programatically"

Для устройств 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, поэтому он не попросит вас выбрать.