我正试图从我的Android应用程序启动Skype意图,传递一个电话号码.到目前为止,感谢其他人在stackoverflow上有类似的需求,我已经设法启动Skype,但我仍然无法传递电话号码.这是我正在使用的代码:
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);
Run Code Online (Sandbox Code Playgroud)
发生了什么事是Skype的启动,但给了我举杯说,号码无效,并建议我加国际前缀.Log.d给了我电话:+39 ........(这个号码有效,我也用它
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);
}
}
Run Code Online (Sandbox Code Playgroud)
事实上,当我转到Skype的视图进行呼叫时,我发现它已经被组成了+ 0所以在我看来,我是以错误的方式传递电话号码,或者是错误的活动....帮助将非常感谢!与此同时,我只想说StackOverflow只是摇滚.
我通过以下方式直接使用默认的 os 拨号程序创建呼叫:
Intent call = new Intent(Intent.ACTION_CALL);
call.setData(Uri.parse("tel:" + phoneNo));
startActivity(call);
Run Code Online (Sandbox Code Playgroud)
是否可以直接从我的应用程序启动 Skype?
我尝试按如下方式传递一个数字:
PackageManager packageManager = getPackageManager();
Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider");
skype.setData(Uri.parse("tel:65465446"));
startActivity(skype);
Run Code Online (Sandbox Code Playgroud)
传递号码失败。