Android隐私相关

1. 获取手机上安装应用列表,需要撒权限?需要的话是否涉及危险权限?获取到应用列表我们能做些撒?

首先,我们思考下获取这个列表的目的?

  1. 我们可以通过特定包名来进行应用间唤醒操作;
  2. 你装了什么应用就说明你的爱好,以此为基础,推送你可能感兴趣的应用
  3. 应用中如果有第三方登录,分享撒的,可能需要通过包名判断第三方APP是否安装
  4. 应用市场检测是否需要升级特定应用;
  5. 待完善

其次,目前我测试Android 9.0版本红米手机,安装APP,获取应用列表这个是无需任何权限申请的。更低版本,像我手头有台Android 5.1锤子手机,也是无需任何权限这些限制的。

2. 获取应用列表代码


    public void isAvailable(Context context) {
        final PackageManager packageManager = context.getPackageManager();
        // 获取所有已安装程序的包信息
        List<PackageInfo> pkgInfo = packageManager.getInstalledPackages(0);
        List<String> pName = new ArrayList<>();// 用于存储所有已安装程序的包名
        if (pkgInfo != null) {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < pkgInfo.size(); i++) {
                String pn = pkgInfo.get(i).packageName;
                // 判断系统/非系统应用
                if ((pkgInfo.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) // 非系统应用
                {
                    Log.i(TAG, "pn: " + pn + "\n");
                    sb.append(pn);
                    sb.append("\n");
                    pName.add(pn);
                 } else {
                    // 系统应用
                }
            }
        }
    }

你可能感兴趣的:(Android,基础)