android - 如何获取Android权限的图标?

标签 android permissions

<permission> 的 XML 规范和 <permission-group>指的是您在设置 | 中看到的图标应用信息 |权限。

如果我已经从查询 PackageInfo 的字符串中获得应用程序所需的权限,例如“android.permission.INTERNET”,我如何才能获得关联的权限和权限组图标?

最佳答案

这是我的代码。

package sample.com.sample_android;

import android.Manifest;
import android.content.pm.PackageManager;
import android.content.pm.PermissionGroupInfo;
import android.content.pm.PermissionInfo;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private static final String ANDROID = "android";
    private PackageManager mPackageManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPackageManager = getPackageManager();

        String permission = Manifest.permission.INTERNET;

        Drawable drawable = getPermissionDrawable(permission);
        ImageView imageView  = (ImageView) findViewById(R.id.image);
        imageView.setImageDrawable(drawable);

        TextView textView = (TextView) findViewById(R.id.text);
        textView.setText(permission);
    }

    @Nullable
    private Drawable getPermissionDrawable(String permission) {
        Drawable drawable = null;
        try {
            PermissionInfo permissionInfo = mPackageManager.getPermissionInfo(permission, 0);
            PermissionGroupInfo groupInfo = mPackageManager.getPermissionGroupInfo(permissionInfo.group, 0);
            drawable = mPackageManager.getResourcesForApplication(ANDROID).getDrawable(groupInfo.icon);
        } catch (PackageManager.NameNotFoundException|Resources.NotFoundException e) {
        }
        return drawable;
    }
}

enter image description here

关于android - 如何获取Android权限的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205979/

相关文章:

拒绝时授予 Android 12 BLUETOOTH_CONNECT 权限

android - 如何在安卓蓝牙打印机上打印文字?

android - 为没有回调的传感器创建循环程序?

c# - GnuPG 必须为每个用户名配置文件安装 key 吗?

android - 权限拒绝在应用重启时访问图片 URI

php - 如何实现论坛权限

android - onPause 不会停止我的振动器

android - gradle android项目中缺少android版本

Android:向日历添加条目

git - 进行 www-data 拥有的 git 部署