Для вызова телефонного звонка из приложения использую код:
androidVersion = Integer.parseInt(Build.VERSION.RELEASE.substring(0, 1));
String contact_number="123456789";
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + contact_number));
if (androidVersion < 5) callIntent.setPackage("com.android.phone");
else callIntent.setPackage("com.android.server.telecom");
startActivity(callIntent);
Т.е. если версия Андроид < 5, использую setPackage: "com.android.phone".
Версия 5 и более - использую setPackage: "com.android.server.telecom"
Но, как показала практика, не все смартфоны с 5 версией используют "com.android.server.telecom".
Подскажите, плиз. как обработать такое исключение, чтобы не попасть на ".ActivityNotFoundException android.intent.action.CALL" и какой setPackage использовать в ОС Андроид 6.0 ?!
Заранее, благодарю!
Ответ
А если попробовать вот так:
String contact_number="123456789";
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + contact_number));
try {
callIntent.setPackage("com.android.phone");
startActivity(callIntent);
} catch(Exception e) {
callIntent.setPackage("com.android.server.telecom");
startActivity(callIntent);
}
Комментариев нет:
Отправить комментарий