你好伙伴Stackoverflowers,
几天前,我发现这个简洁的小功能可以启动并使用意图从另一个应用程序连接OpenVPN。
private void startVPN(){
Intent openVPN = new Intent("android.intent.action.VIEW");
openVPN.setPackage("net.openvpn.openvpn");
openVPN.setClassName("net.openvpn.openvpn", "net.openvpn.openvpn.OpenVpnClient");
openVPN.putExtra("net.openvpn.openvpn.AUTOSTART_PROFILE_NAME","10.10.10.10 [10.10.10.10]");
startActivityForResult(openVPN,0);
}
现在我的问题是:
我是否只需要安装OpenVPN(连接或安装Android),或者我是否需要创建类似.jar libary的东西来使用它?
答案 0 :(得分:0)
您正在呼叫startActivity
,因此您需要包含该net.openvpn.openvpn
个套餐和Intent
过滤条件的任何应用。
setClassName
正在为特定类调用该包,最终会占用一些Intent
个额外内容。
所以没有JAR文件,是的,需要安装应用程序。如果您没有安装该应用,我认为onActivityResult
将返回除OK
响应代码以外的其他代码。
答案 1 :(得分:0)
您创建的意图只打开openVpn应用程序,为此应该在设备上安装openVpn应用程序,否则此代码将崩溃。您可以检查此代码是否将解析意图
// Verify that the intent will resolve to an activity
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(sendIntent);
}