java - 如果安装了特定应用程序,如何阻止我的 VPN 应用程序运行
问题描述
我有一个在 OpenVPN 核心上运行的 android VPN 应用程序,所以我想检查是否安装了特定的应用程序,在连接应用程序时,它将停止并请求在运行之前卸载此类应用程序。
我在一个使用 JSON 的应用程序上看到了所有被列入黑名单的应用程序 id,我真的不知道在我自己的应用程序上进行此操作。
这是 JSON 图像文件: Blacklist.json
谢谢你。
解决方案
您需要弄清楚设备上任何已安装应用程序的正确包名称是什么。
获取包裹信息:
private boolean isPackageInstalled(String packageName, PackageManager packageManager) {
try {
packageManager.getPackageInfo(packageName, 0);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
然后你可以在这里签到,
PackageManager pm = context.getPackageManager();
boolean isInstalled = isPackageInstalled("com.somepackage.name", pm);
if(isInstalled) {
// NO VPN
}
else {
// start your service
}
推荐阅读
- botframework - 在没有互联网连接的情况下使用远程托管的 botframework 模拟器或机器人
- rust - 宏中的变量仍在此深度错误处重复
- php - 如何从laravel子文件夹中的url中删除public
- git - 如何在 Git Hub 中查找所有非活动一个月或更长时间的用户
- angular - npm:试图重新安装无 admob 插件,但它抛出一个关于不包含 package.json 文件的错误
- swift - 如何快速比较两种不同的日期格式
- c++ - 需要限制“检测特征()”的角度上限,而不仅仅是下限。应该很容易?
- java-8 - Java8 - 独立代码的异步执行
- macos - 列出 macOS 上所有已加载/已卸载或同时启动的代理
- javascript - 我有一个对象数组,每个对象内部都有一个称为分数的键,我需要找到每个分数的总和并将其推送到一个数组中