我使用Intent从我的Android应用程序调用skype联系人,这是代码:
Intent skypeIntent = new Intent(Intent.ACTION_VIEW);
skypeIntent.setData(Uri.parse("skype:" + contactUserName));
skypeIntent.setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main"));
skypeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(skypeIntent);
事情就是这个代码自上次更新skype以来一直没有工作(到版本4.0.0.19550,在nexus S上)。现在它只会让我进入“最近的行动”标签。有没有人有同样的问题?这个问题来自我的代码吗?
答案 0 :(得分:3)
好吧,经过一些研究并查看了skype uri(http://dev.skype.com/skype-uri)的语法,我意识到我的代码中缺少部分链接。
所以现在要发送的数据是:
skypeIntent.setData(Uri.parse("skype:" + contactUserName + "?call"));
答案 1 :(得分:0)
我知道你可能已经找到了答案,但如果没有(对于其他开发者),你可以这样做:
Intent skypeIntent = new Intent(Intent.ACTION_VIEW);
skypeIntent.setData(Uri.parse("skype:" + contactUserName+ "?call&video=true"));
//make call only then use bellow given code
//skypeIntent.setData(Uri.parse("skype:" + contactUserName+ "?call"));
skypeIntent.setComponent(new nentName("com.skype.raider", "com.skype.raider.Main"));
skypeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainActivity.this.startActivity(skypeIntent);
然后添加AndroidManifest.xml
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="skype" />
</intent-filter>
答案 2 :(得分:0)
如果您想调用聊天而不是调用:
skypeIntent.setData(Uri.parse("skype:" + contactName + "?chat"));