2013-04-05 7 views
7

मैं इरादा.एक्शन क्लास का उपयोग करने की कोशिश कर रहा हूं। मुझे पता है कि एक यूआरएल प्रदर्शित करने के लिए ACTION_VIEW का उपयोग कैसे करें, लेकिन एप्लिकेशन लॉन्च होने पर कॉल नंबर पर Intent.ACTION_DIAL का उपयोग करना चाहता था। प्रलेखन कहते हैं कि आप एक स्ट्रिंग में एक URI पार्स और फिर आशय मैं इस कोशिश की करने के लिए इसे जोड़ने की जरूरत:एंड्रॉइड इंटेंट.एक्शन_CALL, उरी

दुर्भाग्य से, परियोजना है:

Uri call = Uri.parse("7777777777");    
Intent surf = new Intent(Intent.ACTION_DIAL, call); 
startActivity(surf); 

यह मैं कह एक त्रुटि संदेश मिलता काम नहीं करता है रोका हुआ। मैंने कोड को डीबग करने की कोशिश की और ऐसा लगता है कि मुझे इरादे की रेखा पर इंगित करना है कि मैं यह गलत नहीं कर रहा हूं कि अगर मैं ऐसा करता हूं तो यह काम करता है और डायलर लाता है।

//Uri call = Uri.parse("7777777777");    
Intent surf = new Intent(Intent.ACTION_DIAL); 
startActivity(surf); 
+0

के संभावित डुप्लिकेट (http://stackoverflow.com/questions/10510395/call-intent-in- [एंड्रॉयड में आशय कॉल] एंड्रॉइड) – amadib

उत्तर

22

tel

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

अनुमति

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

उपयोग इस

String no = "536171839"; 
Intent callintent = new Intent(android.intent.action.CALL); 
callintent.setData(Uri.parse("tel:" +no)); 
startActivity(callintent); 

अपनी AndroidManifest.xml फ़ाइल में जोड़ने की कोशिश

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

डायलर ऐप खोलने के लिए (उपयोगकर्ता को डायलर ऐप के अंदर कॉल बटन दबाएं; कोई अतिरिक्त अनुमति की जरूरत) का उपयोग करें:

String number = "7777777777"; 
Uri call = Uri.parse("tel:" + number);    
Intent surf = new Intent(Intent.ACTION_DIAL, call); 
startActivity(surf); 

डायलर एप्लिकेशन खोलें और स्वचालित रूप से कॉल कर (की जरूरत है android.permission.CALL_PHONE) का उपयोग करने के लिए:

String number = "7777777777"; 
Uri call = Uri.parse("tel:" + number);    
Intent surf = new Intent(Intent.ACTION_CALL, call); 
startActivity(surf); 
3

इस

String url="tel:777777777" 
if (url.startsWith("tel:")) 
{ 
Intent intent = new Intent(Intent.ACTION_DIAL, 
Uri.parse(url)); 
startActivity(intent); 
} 

कोशिश इसे अपने AndroidManifest.xml फ़ाइल में जोड़ें

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

इस प्रयास करें भी

Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phno); 
startActivity(intent); 

एंड्रॉयड प्रकट

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

आज़माएं:

String toCall = "tel:" + number.getText().toString(); 

      startActivity(new Intent(Intent.ACTION_DIAL, 

        Uri.parse(toCall))); 
0

तो यू

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

जोड़ लिया है फोन पर कॉल की अनुमति की जाँच करें आपके लिए आपका आवेदन

+1

यह टिप्पणी होना चाहिए – ketan

1

एक और दृष्टिकोण लंबित इंटेंट को बाद में बुलाया जाना है। यह विशेष रूप से उपयोग होता है जब आप उपयोगकर्ता को अधिसूचना कार्रवाई से सीधे फोन कॉल पर रीडायरेक्ट करना चाहते हैं।

String number = "551191111113"; 
Intent intent = new Intent(Intent.ACTION_CALL); 
intent.setData(Uri.parse("tel:" +number)); 
PendingIntent pendingIntentForCall = PendingIntent.getActivity(mContext, 0 /* Request code */, intent,PendingIntent.FLAG_ONE_SHOT); 

आप इस प्रकार अधिसूचना में इसका इस्तेमाल कर सकते हैं:

 Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(mContext) 
       .setContentTitle(title) 
       .setContentText(message) 
       .setStyle(new NotificationCompat.BigTextStyle().bigText(message)) 
       .setTicker(tickerText) 
       .setColor(Color.BLACK) 
       .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_directions_bus_white_48dp)) 
       .setSmallIcon(R.mipmap.ic_directions_bus_white_24dp) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .addAction(new NotificationCompat.Action(R.mipmap.ic_directions_bus_white_24dp,"Call to " + number,pendingIntentForCall)); 
संबंधित मुद्दे