Come avviare una chiamata Skype da un'applicazione Android?

Sto cercando di avviare un'intenzione Skype dalla mia applicazione Android, passando un numero di telefono. Finora, grazie ad altre persone che hanno bisogno di simili simili a stackoverflow, sono riuscito a avviare skype, ma ancora non posso passare il numero di telefono. Questo è il codice che sto usando:

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); 

Quello che succede è che inizia Skype, ma mi dà un brindisi dicendo che il numero non è valido e mi suggerisce di aggiungere il prefisso internazionale. Il Log.d mi dà tel: +39 …….. (il numero funziona, lo sto usando anche per

  • dialogo di avanzamento non mostrando in android?
  • Close applicazione Android in modo programmato
  • Android - strumento di test dell'interface utente di frammento indipendente
  • Dialogo di progresso personalizzato di centraggio
  • Android: Crea EditText in Runtime
  • Problema di vulnerabilità Libpng anche dopo l'aggiornamento della libreria opencv
  •  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); } } 

    Infatti, quando vado alla vista di Skype per la chiamata, vedo che è stato composto +0 Quindi quello che mi sembra è che sto passando il numero di telefono nel modo sbagliato o all'attività sbagliata …. qualsiasi l'aiuto sarebbe molto apprezzato! Nel frattempo, voglio solo dire che StackOverflow semplicemente rocce.

  • come hide la tastiera virtuale sul touch di un filatore
  • C'è un modo più semplice / migliore per mettere un bordo / contorno attorno al mio TextView?
  • Può qualcuno dare un esatto esempio di implementazione di webview in android
  • jarsigner: imansible firmare jar: java.util.zip.ZipException: voci non valide size compresse (previste 463 ma ottenute 465 byte)
  • La chiamata richiede l'API livello 14 (min corrente è di 10):
  • Differenti comportmenti di XmlPullParser.getInputEncoding () su API11 + e le versioni pre-API11 di Android
  • 3 Solutions collect form web for “Come avviare una chiamata Skype da un'applicazione Android?”

    Vedi questa risposta: https://stackoverflow.com/a/8844526/819355

    Jeff suggerisce di utilizzare un skype:<user name> invece di tel:<phone number>

    Dopo aver studiato lo skype apk con apktool, come suggerito in quella risposta, ho trovato questo codice, per me funziona:

     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); } } 

    Fare riferimento allo sviluppatore di Skype: http://developer.skype.com/skype-uris/skype-uri-tutorial-android Ricorda inoltre di aggiungere "? Call" nel tuo url. Per esempio

    intent.setData (Uri.parse ("skype:" + phoneNumber + "? call"));

    Senza di esso, Skype non può comporre il numero.

    Non è necessario includere una class specifica quando si chiama un'applicazione esterna. Lasciate che l'utente decida l'applicazione che vuole usare. Questo è il modo in cui l'android è stata progettata ed è una soluzione migliore che obbligare le persone a utilizzare una morbida applicazione (anzi, appunto, una lenta, chiusa e inadeguata alla mia mente).

    In altre parole, basta usare Uri, è il lavoro di skype di dichiarare la sua capacità di catturare tali intenti.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.