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 {
                    // 系統應用
                }
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章