How to start a Skype call from an Android app?

前端 未结 4 873
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-03 06:33

I\'m trying to start a Skype intent from my Android App, passing a phone number. So far, thanks to other people who ad similiar needs here on stackoverflow, I\'ve managed to

4条回答
  •  余生分开走
    2020-12-03 06:45

    Refer this skype doc link Skype URI tutorial: Android apps

    First need to check skype is installed or not using

    /**
     * Determine whether the Skype for Android client is installed on this device.
     */
    public boolean isSkypeClientInstalled(Context myContext) {
      PackageManager myPackageMgr = myContext.getPackageManager();
      try {
        myPackageMgr.getPackageInfo("com.skype.raider", PackageManager.GET_ACTIVITIES);
      }
      catch (PackageManager.NameNotFoundException e) {
        return (false);
      }
      return (true);
    }
    

    initiate skype uri using

    /**
     * Initiate the actions encoded in the specified URI.
     */
    public void initiateSkypeUri(Context myContext, String mySkypeUri) {
    
      // Make sure the Skype for Android client is installed.
      if (!isSkypeClientInstalled(myContext)) {
        goToMarket(myContext);
        return;
      }
    
      // Create the Intent from our Skype URI.
      Uri skypeUri = Uri.parse(mySkypeUri);
      Intent myIntent = new Intent(Intent.ACTION_VIEW, skypeUri);
    
      // Restrict the Intent to being handled by the Skype for Android client only.
      myIntent.setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main"));
      myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    
      // Initiate the Intent. It should never fail because you've already established the
      // presence of its handler (although there is an extremely minute window where that
      // handler can go away).
      myContext.startActivity(myIntent);
    
      return;
    }
    

    if Skype is not installed then redirect to market place using

    /**
     * Install the Skype client through the market: URI scheme.
     */
    public void goToMarket(Context myContext) {
      Uri marketUri = Uri.parse("market://details?id=com.skype.raider");
      Intent myIntent = new Intent(Intent.ACTION_VIEW, marketUri);
      myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      myContext.startActivity(myIntent);
    
      return;
    }
    

提交回复
热议问题