Мне нужно позвонить по номеру телефона из моего приложения для Android?Какой из них эффективен снизу - PullRequest
0 голосов
/ 09 июля 2019

1) Я использовал linkify html method link

 value = "<a href="+to_tel+">"+number+"</a>";
 Linkify.addLinks(t, Linkify.PHONE_NUMBERS);
 Html.fromHtml(value);`                

2) кликабельный метод Span

ClickableSpan clickableSpan = new ClickableSpan() {
     @Override
     public void onClick(View textView) {
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:" + phoneNumber.replace(" ", "")));
        startActivity(intent); 
 }


SpannableString spannableString = new SpannableString(stringBuilder);
spannableString.setSpan(clickableSpan, phoneSpanStart, phoneSpanEnd,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Второй подход наилучший, который использует намерение.Как это официально рекомендовано в документации Android.

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber.replace(" ", "")));
startActivity(intent); 

Примечание:

Позвонить (требуется разрешение CALL_PHONE)

<uses-permission android:name="android.permission.CALL_PHONE" />
0 голосов
/ 11 июля 2019

Можно также сделать это через xml, добавив

android:autoLink="phone"

в вашем текстовом представлении (если текстовое представление имеет ТОЛЬКО номер, который вы хотите набрать, в настоящее время вы используете одно текстовое представление, но вы можете просто сделать второе с только контактными данными).

Это запустит приложение Phone пользователя со значением textView, введенным в него

...