Как я могу заставить дозвонщик открыться с отображением номера телефона?
Мне не нужно звонить по номеру телефона, мне просто нужно, чтобы номеронабиратель открылся с уже отображенным номером телефона. Что Intent
я должен использовать для достижения этой цели?
4 ответа:
Два способа ее достижения.
1) нужно запустить дозвонщик через код, без взаимодействия с пользователем.
Вам нужно
Action_Dial
,Используйте приведенный ниже код, он откроет номеронабиратель с указанным номером
Intent intent = new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:0123456789")); startActivity(intent);
Требуется префикс 'tel:' , в противном случае будет выдано следующее исключение: java.яз..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= " телефон" android: linksClickable= "true" свойство textView
Вам не нужно использовать намерение или получать разрешение через именно такой образ.
Довольно поздно с ответом, но если у вас есть
TextView
, в котором вы показываете номер телефона, то вам вообще не нужно иметь дело с намерениями, вы можете просто использовать атрибут XMLandroid:autoLink="phone"
, и ОС автоматически инициирует намерениеACTION_DIAL
.
Как @ashishduh упоминалось выше, использование
android:autoLink="phone
также является хорошим решением. Но этот вариант имеет один недостаток, он не работает со всеми длинами телефонных номеров. Например, номер телефона из 11 номеров не будет работать с этой опцией. Решение состоит в том, чтобы префиксировать ваши телефонные номера с кодом страны.Пример:
08034448845
не получитсяНо
+2348034448845
будет