जवाबों:
इसे प्राप्त करने के दो तरीके।
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
इंटेंट शुरू कर देगा ।
जैसा कि ऊपर वर्णित @ashishduh, का उपयोग android:autoLink="phone
करना भी एक अच्छा समाधान है। लेकिन यह विकल्प एक खामी के साथ आता है, यह सभी फोन नंबर की लंबाई के साथ काम नहीं करता है। उदाहरण के लिए, 11 नंबर का फोन इस विकल्प के साथ काम नहीं करेगा। समाधान देश कोड के साथ अपने फोन नंबरों को उपसर्ग करना है।
उदाहरण:
08034448845
काम नहीं करेगा
लेकिन +2348034448845
होगा
घोषणा में अनुमति जोड़ें:
<uses-permission android:name="android.permission.CALL_PHONE" />
बटन या कोई विजेट उदाहरण बनाएं: 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);
}
});