web-gelistirme-sc.com

Çeviricinin, görüntülenen telefon numarasıyla açılmasını nasıl sağlayabilirim?

Telefon numarasını aramanıza gerek yok, sadece görüntülenen telefon numarasıyla açmak için çeviriciye ihtiyacım var. Bunu başarmak için hangi Intent kullanmalıyım?

174
Nik

Bunu başarmanın iki yolu var.

1) Çeviriciyi kullanıcı etkileşimi olmadan kodla başlatmanız gerekir.

İhtiyacınız olan Action_Dial,

aşağıdaki kodu kullanın ve Numarayı belirtilen numara ile açın

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

'tel:' öneki gereklidir , aksi takdirde aşağıdaki istisnalar atılır: Java.lang.IllegalStateException: Could not Faaliyetin yöntemini uygular.

Action_Dial herhangi bir izin gerektirmez.

Aramayı kullanıcının etkileşimi olmadan doğrudan başlatmak istiyorsanız , Intent.ACTION_CALL eylemini kullanabilirsiniz. Bu durumda, AndroidManifest.xml dosyasına şu izni eklemelisiniz:

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

2) Phone_Number dizgisine tıklayıp aramayı başlatmak için kullanıcının ihtiyacı var.

Android:autoLink="phone" 

Aşağıdaki özellik ile TextView kullanmanız gerekir.

Android: autoLink = "telefon" Android: linksClickable = "true" bir textView özelliği

Bu şekilde niyet kullanmanıza veya izin almanıza gerek yoktur.

491
AAnkit

Cevabın oldukça geç üzerinde, ancak telefon numarasını gösteren bir TextView varsa, o zaman hiç niyetle uğraşmanıza gerek kalmaz, sadece Android:autoLink="phone" ve işletim sistemi XML özelliğini kullanabilirsiniz. otomatik olarak bir ACTION_DIAL Amaç başlatır.

50
ashishduh

Yukarıda belirtilen @ ashishduh'da olduğu gibi, Android:autoLink="phone kullanmak da iyi bir çözümdür. Ancak bu seçenek tek bir dezavantajla geliyor, tüm telefon numarası uzunluklarıyla çalışmıyor. Örneğin, 11 numaradan oluşan bir telefon bu seçenekle çalışmayacaktır. Çözüm, telefon numaralarınızı ülke koduyla belirtmektir.

Örnek:

08034448845 çalışmayacak

ama +2348034448845 olacak

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

Bu, doğrudan DialText etiketine atanmış numarayı çevirici üzerinde nasıl açabileceğinizi gösterir.

1
saurabh yadav

Bildiride izin ekle:

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

Düğme veya herhangi bir widget örneği yapın: btnCall

btnCall.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent callIntent = new Intent(Intent.ACTION_DIAL);
        callIntent.setData(Uri.parse("tel: +98990*******");
        startActivity(callIntent);

    }
});
0
Pouria Hemati

Tamam, bu sorunun cevabı çok geç olacak. Ama eğer Kotlin içinde yapmak istiyorsanız burada sadece bir örnek var.

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

Birine yardım edebileceğini düşündüm.

0
gprathour