Android以编程方式启动VPNClient(com.ipsec.vpnclient)

时间:2014-08-27 13:36:09

标签: android android-intent vpn

我有一个需要VPN的Android应用程序。我的用户将使用Galaxy Note 3,并将使用内置的“VPN Client”(com.ipsec.vpnclient)。我需要找到一种方法从我的应用程序启动此应用程序,在VPN丢弃的实例中。我已经找到了一种方法来确定VPN是否会丢失,但我仍然需要一种方法来启动应用程序。

解答:
感谢@Muthu的帮助,我能够使用以下方法。

final Intent intent = new Intent("android.intent.action.VIEW");
intent.setComponent(new ComponentName("com.ipsec.vpnclient", "com.ipsec.vpnclient.MainActivity"));

修改
为了增加混乱,我可以通过另一个启动程序(如ADW或Nova)轻松地为活动(com.ipsec.vpnclient.MainActivity)添加快捷方式。我也尝试在下面的方法中使用com.ipsec.vpnclient.MainActivity而不是com.ipsec.vpnclient,但无济于事。

Intent intent = getPackageManager().getLaunchIntentForPackage("com.ipsec.vpnclient");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

上述方法适用于其他软件包,但我似乎无法启动此软件包。

以下是Android System Info中查看的应用程序。 enter image description here

有关如何以编程方式启动此应用程序的任何想法?

1 个答案:

答案 0 :(得分:1)

您可以使用intent启动任何已安装的应用程序。在你的情况下像这样

Intent LaunchVPN = getPackageManager().getLaunchIntentForPackage("com.ipsec.vpnclient");
startActivity( LaunchVPN );

编辑 您可以通过

打开可在设置页面中找到的预安装应用程序
final Intent i = new Intent("android.intent.action.VIEW");
i.setComponent(new   ComponentName("com.android.settings","com.android.settings.InstalledAppDetails"));
startActivity(i);