You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

已知包名如何获取Android已安装应用的申请权限

嘿,针对你要获取指定包名应用权限的需求,我整理了几个实用的方法,不管是普通用户还是开发者都能用上:

方法一:使用ADB命令(最快捷,适合开发者/懂点技术的用户)

这是最直接的方式,前提是你已经在电脑上配置好ADB环境,并且手机开启了USB调试:

  1. 用USB连接手机和电脑,先运行adb devices验证ADB能正常识别设备
  2. 执行以下命令获取该应用所有声明的权限(包括已授予和未授予):
    adb shell dumpsys package com.android.something | grep -A 15 "Requested Permissions"
    
  3. 如果只想看已授予的权限,可以用这个命令:
    adb shell dumpsys package com.android.something | grep -A 15 "Granted Permissions"
    
    要是输出太杂,还可以加过滤只显示权限名称:
    adb shell dumpsys package com.android.something | grep -E "android.permission.[A-Z_]+"
    
方法二:Android代码实现(适合开发者集成到自己的应用中)

如果你想在自己的APP里获取指定包名应用的权限,可以用PackageManager API:

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.util.Log;

// 替换成你要查询的目标包名
String targetPackage = "com.android.something";
PackageManager packageManager = getApplicationContext().getPackageManager();

try {
    // 获取应用的权限信息
    PackageInfo packageInfo = packageManager.getPackageInfo(
        targetPackage,
        PackageManager.GET_PERMISSIONS
    );

    String[] requestedPermissions = packageInfo.requestedPermissions;
    if (requestedPermissions != null) {
        for (String permission : requestedPermissions) {
            // 检查权限是否已被授予
            int grantStatus = packageManager.checkPermission(permission, targetPackage);
            String status = grantStatus == PackageManager.PERMISSION_GRANTED 
                ? "已授予" 
                : "未授予";
            
            Log.d("TargetAppPermissions", String.format("%s: %s", permission, status));
        }
    } else {
        Log.d("TargetAppPermissions", "该应用未申请任何权限");
    }
} catch (PackageManager.NameNotFoundException e) {
    Log.e("TargetAppPermissions", "未找到指定包名的应用", e);
}

注意:Android 11及以上版本,你的应用需要申请android.permission.QUERY_ALL_PACKAGES权限(或者在manifest中添加<queries>标签指定目标包名),才能正常获取其他应用的信息。

方法三:系统设置手动查看(适合普通用户)

不需要任何技术基础,直接在手机系统里操作:

  • 打开手机的「设置」应用
  • 找到「应用管理」或「应用」选项(不同品牌手机名称可能略有不同)
  • 在应用列表里搜索com.android.something,找到目标应用
  • 进入应用详情页,点击「权限」选项,就能看到该应用所有申请的权限,以及每个权限的授予状态

内容的提问来源于stack exchange,提问作者JustF

火山引擎 最新活动