以编程方式获取权限详细信

k0s*_*0sh 5 android android-permissions

反正在android sdk中他们提供了特定权限的信息吗?就像谷歌播放一样,无论何时点击权限,您都可以阅读此权限的功能.我有这个函数来返回给我一个应用程序的特定权限

public static List<String> getAppPermissions(Context context, String packageName) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
        return Arrays.asList(info.requestedPermissions);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return new ArrayList<>();
    }
} 
Run Code Online (Sandbox Code Playgroud)

通过这段代码我只得到权限名称,但我想知道是否有任何这样的api返回权限和他们的详细信息.

k0s*_*0sh 2

回答我的问题,实际上是获得有关任何示例的描述的PermissionInfo权利:classandroid permission

@Nullable
public static PermissionInfo getPermissionInfo(@NonNull Context context, @NonNull String permission) {
    try {
        return context.getPackageManager().getPermissionInfo(permission, PackageManager.GET_META_DATA);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

PermissionInfo如果上面的方法可以解析permission给定的名称,则它会返回实例,然后您只需调用即可loadDescription加载permission描述。