Мне не нужно звонить по номеру телефона, мне просто нужно, чтобы звонилка открывалась с уже отображенным номером телефона. Что Intent
я должен использовать для достижения этой цели?
Мне не нужно звонить по номеру телефона, мне просто нужно, чтобы звонилка открывалась с уже отображенным номером телефона. Что Intent
я должен использовать для достижения этой цели?
Два способа добиться этого.
1) Нужно запустить звонилку через код, без взаимодействия с пользователем.
Вам нужно Action_Dial
,
используйте код ниже, он откроет номеронабиратель с указанным номером
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent);
Префикс 'tel:' является обязательным , в противном случае будет выдано следующее исключение: java.lang.IllegalStateException: Не удалось выполнить метод действия.
Action_Dial не требует никакого разрешения.
Если вы хотите инициировать вызов напрямую, без участия пользователя , вы можете использовать действие Intent.ACTION_CALL
. В этом случае вы должны добавить следующее разрешение в ваш AndroidManifest.xml:
<uses-permission android:name="android.permission.CALL_PHONE" />
2) Нужно, чтобы пользователь щелкнул строку Phone_Number и начал звонок.
android:autoLink="phone"
Вам нужно использовать TextView со свойством ниже.
android: autoLink = "phone" android: linksClickable = "true" свойство textView
Вам не нужно использовать намерение или получить разрешение таким образом.
Довольно поздно для ответа, но если у вас есть,
TextView
что вы показываете номер телефона, то вам вообще не нужно иметь дело с намерениями, вы можете просто использовать атрибут XML,android:autoLink="phone"
и ОС автоматически инициируетACTION_DIAL
Intent.источник
Ладно, будет очень поздно, чтобы ответить на этот вопрос. Но вот только один пример, если вы хотите сделать это в Kotlin .
Думаю, это может кому-то помочь.
источник
Как упоминалось выше @ashishduh, использование
android:autoLink="phone
также является хорошим решением. Но эта опция имеет один недостаток, она не работает со всеми номерами телефонов. Например, телефонный номер из 11 номеров не будет работать с этой опцией. Решение состоит в том, чтобы префикс ваших телефонных номеров с кодом страны.Пример:
08034448845
не будет работатьно
+2348034448845
будетисточник
Вот как вы можете открыть номер назначенного ярлыка EditText на номеронабирателе напрямую.
источник
Добавить разрешение в манифесте:
Сделать кнопку или любой пример виджета:
btnCall
источник