尝试启动并传递电话。不。通过我的应用程序中的以下代码转至 Skype:
PackageManager packageManager = getPackageManager();
Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider");
skype.setData(Uri.parse("tel:65465446"));
startActivity(skype);
Skype 已启动,但无法接听号码。
此代码适用于我在两个 Skype 用户之间发起通话:
Intent sky = new Intent("android.intent.action.VIEW");
sky.setData(Uri.parse("skype:" + user_name));
startActivity(sky);
要找到此(和其他),请使用 apktool 打开 Skype APK。查看 AndroidManifest.xml,您将看到他们知道的所有意图过滤器。如果您想触发这些意图过滤器之一,则需要创建一个与其中一个匹配的意图。这是上面的代码匹配的意图过滤器:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="skype" />
</intent-filter>
您可以免费获得“android.intent.category.DEFAULT”类别new Intent()
,因此剩下的就是设置操作和 URI。
tel: URI 的意图过滤器如下所示:
<intent-filter android:icon="@drawable/skype_blue" android:priority="0">
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
因此,您设置操作并为 Intent 提供 tel: URI 和“正确的事情发生”。 Android 会为 tel: URI 找到正确的提供程序。它可能会获取用户的输入以在电话应用程序和 Skype 之间进行选择。 Skype 处理 tel: URI 的优先级为零,这是最低的。所以如果安装了Phone App,它可能会得到Intent。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)