首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查找安装了可安装其他应用程序的android应用程序

查找安装了可安装其他应用程序的android应用程序
EN

Stack Overflow用户
提问于 2022-05-08 16:14:46
回答 1查看 31关注 0票数 1

我希望找到用户允许安装其他应用程序的应用程序。我知道,如果我查找"android.permission.INSTALL_PACKAGES“,我将主要找到可以安装应用程序的系统包,但我希望找到用户允许安装应用程序的应用程序(如浏览器或电子邮件)。

我正在尝试下面的代码循环所有的应用程序,这显然是错误的,因为我找不到Chrome,我允许安装应用程序。有什么建议如何做到这一点吗?

代码语言:javascript
运行
复制
final PackageManager pm = getPackageManager();
for (final PackageInfo pi : pm.getInstalledPackages(GET_PERMISSIONS)) {
  try {
    Context pcontext = createPackageContext(pi.packageName, 0);
    if (ContextCompat.checkSelfPermission(pcontext, Manifest.permission.INSTALL_PACKAGES) == PackageManager.PERMISSION_GRANTED) {
       Log.d(TAG, "Application able to install other apps: " + pi.packageName);
    }
  }catch (SecurityException|PackageManager.NameNotFoundException ex){
    Log.d(TAG, "Exception " + ex);
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-08 22:00:45

如果我正确理解你的问题,答案是“这是不允许的。”

第三方应用程序实际上无法安装应用程序(参见https://developer.android.com/reference/android/Manifest.permission#INSTALL_PACKAGES)。像Chrome这样的应用程序调用系统安装程序,它们本身不会获得安装权限,所以这就是为什么你看不到它们的原因。

也没有办法检查哪些其他应用程序已经启动了安装程序进程。这将是一个安全/隐私问题,因为这意味着任何应用程序都可以检索到用户在其设备上安装的其他应用的列表!每个进程都分配了自己的linux id,不能直接访问任何其他应用程序的数据(例如,它是沙箱化的),使用完全相同的机制,这实际上阻止了一个用户在标准linux系统上查询另一个用户的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72162925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档