programing

전화 번호가 표시된 상태에서 다이얼을 열려면 어떻게 해야 합니까?

skycolor 2023. 8. 5. 10:00
반응형

전화 번호가 표시된 상태에서 다이얼을 열려면 어떻게 해야 합니까?

전화번호를 부를 필요는 없고, 다이얼을 열어 전화번호가 표시된 상태로 해주시면 됩니다.무엇을Intent제가 이것을 이루기 위해 사용해야 합니까?

그것을 달성하는 두 가지 방법.

사용자의 조작 없이 코드를 통해 다이어라를 시작해야 합니다.

필요합니다Action_Dial,

아래 코드를 사용하면 번호가 지정된 다이얼을 엽니다.

Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:0123456789"));
startActivity(intent); 

'tel:' 접두사가 필요합니다. 그렇지 않으면 java.lang 예외가 발생합니다.잘못된 상태 예외: 활동의 메서드를 실행할 수 없습니다.

Action_Dial에는 권한이 필요하지 않습니다.

사용자의 개입 없이 직접 통화를 시작하려면 작업을 사용할 수 있습니다.Intent.ACTION_CALL이 경우 AndroidManifest.xml에 다음 권한을 추가해야 합니다.

<uses-permission android:name="android.permission.CALL_PHONE" />

사용자가 Phone_Number 문자열을 클릭하고 통화를 시작해야 합니다.

android:autoLink="phone" 

아래 속성과 함께 TextView를 사용해야 합니다.

안드로이드:autoLink="phone" 안드로이드:linkClickable="true" a textView 속성

이 방법을 통해 의도를 사용하거나 권한을 얻을 필요가 없습니다.

답이 꽤 늦었지만, 만약 당신이 있다면.TextView당신이 전화번호를 보여주고 있다면, 당신은 의도를 다룰 필요가 전혀 없습니다, 당신은 그냥 XML 속성을 사용할 수 있습니다.android:autoLink="phone"그러면 OS가 자동으로 시작합니다.ACTION_DIAL의도.

좋아요, 이 질문에 대한 답변은 매우 늦을 것입니다.하지만 코틀린에서 하고 싶다면 여기 하나의 샘플이 있습니다.

val intent = Intent(Intent.ACTION_DIAL)
intent.data = Uri.parse("tel:<number>")
startActivity(intent)

누군가에게 도움이 될 거라고 생각했어요.

다음과 같이 Intent를 호출할 수 있습니다.

String number = "0123456789";
        Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:" + number));
        startActivity(intent);

위에서 언급한 @ashishduh와 같이, 사용android:autoLink="phone또한 좋은 해결책입니다.그러나 이 옵션에는 한 가지 단점이 있습니다. 모든 전화 번호 길이에서 작동하지 않습니다.예를 들어 11개 번호의 전화 번호는 이 옵션에서 사용할 수 없습니다.해결책은 전화번호 앞에 국가 코드를 붙이는 것입니다.

예:

08034448845작동하지 않음

그렇지만+2348034448845할 것이다

<TextView
 android:id="@+id/phoneNumber"
 android:autoLink="phone"
 android:linksClickable="true"
 android:text="+91 22 2222 2222"
 />

이렇게 하면 다이얼러에서 할당된 번호의 텍스트 레이블 편집을 직접 열 수 있습니다.

코틀린을 사용하는 사용자를 위한 도우미 기능:

fun openDialPad(context: Context, phoneNum: String) {
    val intent = Intent(Intent.ACTION_DIAL)
    intent.setData(Uri.parse("tel:$phoneNum"))
    context.startActivity(intent)
}

언급URL : https://stackoverflow.com/questions/11699819/how-do-i-get-the-dialer-to-open-with-phone-number-displayed

반응형