2017-01-09 10 views
0

私はSkypeとSkype for BusinessをAndroidデバイスにインストールしました。 Skype for BusinessでVOIP通話をプログラムで作成したい 私はそうのような意図作成:ただ、一度は必ず
電話 スカイプ

を:使用してSkype for Businessコールの目的

コンプリートアクション:

Intent intent = new Intent("android.intent.action.VIEW"); 
intent.setData(Uri.parse("skype:" + somePhoneNumber)); 
context.startActivity(intent); 

私は電話をかけるために意図を起動すると、ポップアップが表示されますが

Skype for Businessはありません。

intent.setData(Uri.parse("skype for business:" + somePhoneNumber)); 

私は何を行うことができます(IllegalArgument)私はfollowoingを試みたが、それがクラッシュしますか? MSDN docsで述べたように

答えて

1

は、ここで私はそれをやった方法は次のとおりです。

のstrings.xml

<!-- skype --> 
<string name="skype_activity_title">Skype for Business call</string> 
<string name="make_skype_call">Make Skype Call</string> 
<string name="video_call">Video call</string> 
<string name="permission_rationale">"Contacts permissions are needed for providing email completions."</string> 
<string name="skypeEmailAddress">skypeEmailAddress</string> 

解像度/レイアウト.skype.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/skype_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="20dp"> 

    <EditText 
     android:id="@+id/skypeEmailAddress" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="20dp" 
     android:hint="[email protected]" 
     android:inputType="textEmailAddress" 
     android:textSize="30sp"/> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/skype_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="20dp" 
      android:textSize="30sp" 
      android:text="@string/make_skype_call" /> 

     <CheckBox 
      android:id="@+id/videoCheck" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/video_call" 
      android:textSize="30sp"/> 

    </LinearLayout> 
</LinearLayout> 

のAndroidManifest.xml

<!-- Skype Activity --> 
<activity 
    android:name="com.somwhere.myproject.SkypeActivity" 
    android:label="@string/skype_activity_title" 
    android:theme="@style/Theme.AppCompat"> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value=".MainActivity"/> 
</activity> 

SkypeActivity.java

package com.somwhere.myproject; 

import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 

public class SkypeActivity extends AppCompatActivity { 

    private static final String TAG = "SkypeActivity"; 
    private static final int REQUEST_READ_CONTACTS = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = getIntent(); 
     final String skypeEmailAddress = intent.getStringExtra(getResources().getString(R.string.skypeEmailAddress)); 

     setContentView(R.layout.skype); 

     final EditText skypeEmailAddressText = (EditText) findViewById(R.id.skypeEmailAddress); 
     skypeEmailAddressText.setText(skypeEmailAddress); 

     Button skypeButton = (Button) findViewById(R.id.skype_button); 

     Log.i(TAG, "skypeEmailAddress: " + skypeEmailAddress); 
     final CheckBox videoCall = (CheckBox) findViewById(R.id.videoCheck); 
     skypeButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       String uriString = "ms-sfb://call?id=" + skypeEmailAddress; 
       if (videoCall.isChecked()) { 
        uriString += "&video=true"; 
       } 
       Uri uri = Uri.parse(uriString); 
       Intent callIntent = new Intent(Intent.ACTION_VIEW, uri); 
       startActivity(callIntent); 
      } 
     }); 

    } 
} 

MainActivity.java(ボタンのクリックで、おそらく)それと

Intent intent = new Intent(activity, SkypeActivity.class); 
intent.putExtra(activity.getResources().getString(R.string.skypeEmailAddress), "[email protected]"); 
activity.startActivity(intent); 
0

、ビジネステント用のSkypeを呼び出すためにこれを使用する:

Intent intent = new Intent("android.intent.action.VIEW"); 
intent.setData(Uri.parse("ms-sfb://call?id=" + somePhoneNumber)); 
context.startActivity(intent); 
+0

私が手:* ActivityNotFoundException:いいえ活動に見つかりましたhandle id =(212)555-1212} * –

+0

例のようにidパラメータをフォーマットしようとしましたか? '" ms-sfb:// call?id = + 1425-555-1234 "' –

関連する問題