1.res/layout/activity_main.xml
2.MainActivity.java
package tw.android; import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { private EditText edt_skypeusername; private Button openskype, skypemsg, skypecall, skypevideocall; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edt_skypeusername = (EditText) findViewById(R.id.edt_skypeusername); openskype = (Button) findViewById(R.id.openskype); skypemsg = (Button) findViewById(R.id.skypemsg); skypecall = (Button) findViewById(R.id.skypecall); skypevideocall = (Button) findViewById(R.id.skypevideocall); // 開啟skype openskype.setOnClickListener(new OnClickListener() { public void onClick(View v) { String mySkypeUri = "skype:"; // 傳入要啟動的動作 SkypeUri(MainActivity.this, mySkypeUri); } }); // 傳送訊息 skypemsg.setOnClickListener(new OnClickListener() { public void onClick(View v) { String skypeName = edt_skypeusername.getText().toString() .trim(); if (skypeName.length() <= 0) { Toast.makeText(getApplicationContext(), "請於上方輸入對方ID...", Toast.LENGTH_SHORT).show(); } else { String mySkypeUri = "skype:" + skypeName + "?chat";// 傳入要啟動的動作 SkypeUri(MainActivity.this, mySkypeUri); } } }); // Skype Audio call button click event code here skypecall.setOnClickListener(new OnClickListener() { public void onClick(View v) { String skypeName = edt_skypeusername.getText().toString() .trim(); if (skypeName.length() <= 0) { Toast.makeText(getApplicationContext(), "請於上方輸入對方ID...", Toast.LENGTH_SHORT).show(); } else { String mySkypeUri = "skype:" + skypeName + "?call";// 傳入要啟動的動作 SkypeUri(MainActivity.this, mySkypeUri); } } }); // Skype Video call button click event code here skypevideocall.setOnClickListener(new OnClickListener() { public void onClick(View v) { String skypeName = edt_skypeusername.getText().toString() .trim(); if (skypeName.length() <= 0) { Toast.makeText(getApplicationContext(), "請於上方輸入對方ID...", Toast.LENGTH_SHORT).show(); } else { String mySkypeUri = "skype:" + skypeName + "?call&video=true";// 傳入要啟動的動作 SkypeUri(MainActivity.this, mySkypeUri); } } }); } public void SkypeUri(Context myContext, String mySkypeUri) { if (!isSkypeClientInstalled(myContext)) { // 判斷是否有安裝skype goToMarket(myContext); // 沒有安裝前往商店安裝 return; } Uri skypeUri = Uri.parse(mySkypeUri); Intent myIntent = new Intent(Intent.ACTION_VIEW, skypeUri); myIntent.setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main")); myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); myContext.startActivity(myIntent); return; } // 判斷是否有安裝skype 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); } // 前往商店安裝 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; } }
檔案下載:
https://github.com/terryyamg/SkypeTest
參考連結:
https://msdn.microsoft.com/zh-tw/library/office/dn745882.aspx
http://www.limbaniandroid.com/2014/01/how-to-make-skype-audiovideo-call-and.html
https://limbaniandroid.blogspot.in/2014/01/how-to-make-skype-audiovideo-call-and.html please update URL
回覆刪除