2012-04-12 15 views
7

मैं अपने एंड्रॉइड ऐप से एक स्काइप इरादा शुरू करने की कोशिश कर रहा हूं, एक फोन नंबर पास कर रहा हूं। अब तक, अन्य लोगों के लिए धन्यवाद जो यहां समान हैं, जो स्टैक ओवरफ्लो पर समान हैं, मैंने स्काइप शुरू करने में कामयाब रहा है, लेकिन फिर भी मैं फोन नंबर पास नहीं कर सकता।एंड्रॉइड ऐप से स्काइप कॉल कैसे शुरू करें?

Intent sky = new Intent("android.intent.action.CALL_PRIVILEGED"); 
     sky.setClassName("com.skype.raider", 
       "com.skype.raider.Main"); 
     sky.setData(Uri.parse("tel:" + number)); 
     Log.d("UTILS", "tel:" + number); 
     ctx.startActivity(sky); 

बात ये है कि स्काइप शुरू होता है, लेकिन मुझे एक टोस्ट कह रही है कि नंबर मान्य नहीं है देता है, और अंतर्राष्ट्रीय उपसर्ग जोड़ने के लिए मुझे पता चलता है: यह कोड मैं का उपयोग कर रहा है। जब मैं फोन करने के लिए स्काइप के दृश्य पर जाने +39 ........ (संख्या काम करता है, मैं भी यह उपयोग कर रहा हूँ के लिए

public static void call(String number, Context ctx) { 
    try { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:" + number)); 
     ctx.startActivity(callIntent); 
    } catch (ActivityNotFoundException e) { 
     Log.e("helloandroid dialing example", "Call failed", e); 
    } 

} 

वास्तव में: Log.d मुझे टेलीफोन देता है , मुझे लगता है कि यह +0 बना हुआ है तो मुझे ऐसा लगता है कि मैं गलत तरीके से फोन नंबर या गलत गतिविधि में गुजर रहा हूं .... किसी भी मदद की बहुत सराहना की जाएगी! इस बीच, मैं बस कहना चाहता हूं कि स्टैक ओवरव्लो बस चट्टानों।

+0

यह पूरी तरह से काम करता है (मेरे लिए)। मुझे उपयोगकर्ता द्वारा हस्तक्षेप किए बिना स्काइप कॉल शुरू करने का एक तरीका चाहिए। – user462990

+0

स्काइप लॉगिन स्क्रीन के लिए प्रोग्रामेटिक रूप से प्रमाण-पत्र कैसे दर्ज करें? यह संभव हो सकता है कि उपयोगकर्ता ऐप –

उत्तर

16

इस जवाब देखें: के रूप में है कि इसका जवाब में सुझाव दिया, https://stackoverflow.com/a/8844526/819355

जेफ का उपयोग कर पता चलता है एक skype:<user name>tel:<phone number>

के बजाय apktool साथ स्काइप apk में से कुछ का अध्ययन करने के बाद, मैं इस कोड के साथ आया था, मेरे लिए यह काम कर रहा:

public static void skype(String number, Context ctx) { 
     try { 
      //Intent sky = new Intent("android.intent.action.CALL_PRIVILEGED"); 
      //the above line tries to create an intent for which the skype app doesn't supply public api 

       Intent sky = new Intent("android.intent.action.VIEW"); 
      sky.setData(Uri.parse("skype:" + number)); 
      Log.d("UTILS", "tel:" + number); 
      ctx.startActivity(sky); 
     } catch (ActivityNotFoundException e) { 
      Log.e("SKYPE CALL", "Skype failed", e); 
     } 

    } 
+0

में लॉग इन नहीं है ठीक है, धन्यवाद, सही तरीका लगता है! कल मैं काम करता हूं और रिपोर्ट करता हूं तो रिपोर्ट करता हूं :) – Daniele

+0

अगर उत्तर उपयोगी था तो कृपया इसे स्वीकार्य के रूप में चिह्नित करें ताकि अन्य लोग इसका उपयोग कर सकें, अगर आपने किसी समस्या को हल किया है, तो आप अपने प्रश्न का उत्तर दे सकते हैं और इसे स्वीकार कर सकते हैं – marmor

+0

यह उत्तर सहायक था, लेकिन इसमें सटीक प्रक्रिया नहीं थी, क्या मुझे अपने प्रश्न के उत्तर के रूप में कार्य कोड लिखना चाहिए या प्रश्न संपादित करना चाहिए? – Daniele

3

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

दूसरे शब्दों में, उरी का उपयोग करें, यह स्काइप का काम है जो इस तरह के इरादों को पकड़ने की क्षमता घोषित करता है।

+1

हाय में लॉग इन नहीं है, उत्तर के लिए धन्यवाद। मुझे पता है, और मैंने पहले से ही अपने क्लाइंट को यह बताने की कोशिश की है, लेकिन, दुख की बात है, यहां मैं यह काम करने की कोशिश कर रहा हूं ... – Daniele

+0

स्काइप लॉगिन स्क्रीन के लिए प्रोग्रामेटिक रूप से प्रमाण-पत्र कैसे दर्ज करें? यह संभव हो सकता है कि उपयोगकर्ता ऐप –

6

स्काइप डेवलपर को देखें: "कॉल" http://developer.skype.com/skype-uris/skype-uri-tutorial-android भी जोड़ने के लिए याद अपने यूआरएल में। E.g

intent.setData (Uri.parse ("स्काइप:" + फोन नम्बर + "कॉल"));

इसके बिना, स्काइप नंबर डायल नहीं कर सकता है।

+0

स्काइप लॉगिन स्क्रीन के लिए प्रोग्रामेटिक रूप से प्रमाण-पत्र कैसे दर्ज करें? यह संभव हो सकता है कि उपयोगकर्ता ऐप –

+0

में लॉग इन नहीं है मुझे "कॉल" भाग के बिना कोई अंतर नहीं आया। इसके अलावा, "स्काइप:" सामान केवल मेरे लिए आधुनिक स्काइप पर काम कर रहा है। पुराने लोग सिर्फ स्काइप डायल स्क्रीन पॉप अप करते हैं लेकिन कॉल नहीं करते थे। फोन के बजाए उपयोगकर्ता नामों का उपयोग करके यह सभी मामलों में काम करता है। "स्काइप:" का उपयोग करके संख्याओं के साथ समस्या, मुझे स्काइप शुरू करने की कोशिश करते समय भी मुझे खुशी है: फोनेनंबर '। – erm3nda

संबंधित मुद्दे