我有一个需要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中查看的应用程序。
有关如何以编程方式启动此应用程序的任何想法?
答案 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);