¿Cómo obtener el icono de un permiso de Android?

Las especificaciones XML para <permission> y <permission-group> refieren a un icono que se ve en Configuración | Información de la aplicación | Permisos.

Si ya tengo el permiso que necesita una aplicación en el de una cadena para consultar el PackageInfo, por ejemplo "android.permission.INTERNET", ¿cómo puedo obtener el permiso asociado y el icono del grupo de permisos?

De acuerdo con esto, el siguiente enfoque debería funcionar: http://developer.android.com/reference/android/content/pm/PackageManager.html

 PackageManager pm = context.getPackageManager(); PermissionInfo info = pm.getPermissionInfo("PERMISSION_NAME", OPTIONAL_FLAGS); int drawableResource = info.icon; 

También hay un método en PackageManager llamado getPermissionGroupInfo .

Aquí está mi código.

 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; } } 

Introduzca aquí la descripción de la imagen

  • Más permisos en apk cargado que en archivo de manifiesto
  • Android NDK limitaciones?
  • Negación de permisos al intentar acceder a contactos en Android
  • Número de marcado sin indicador
  • ¿Por qué mi aplicación solicita permiso de identificación de teléfono?
  • Respecto a los permisos de Android y al nivel de protección de firmas
  • ¿Por qué mi aplicación echa un `android.permission.REBOOT SecurityException`?
  • Adb remount permiso denegado, pero capaz de acceder a superusuario en shell - android
  • HelloWebView Ejemplo: java.lang.SecurityException: Negación de permisos
  • ¿Pueden las aplicaciones de Android solicitar permisos adicionales en tiempo de ejecución?
  • Android - establece targetSdkVersion a 22 para evitar permisos de tiempo de ejecución, ¿cuáles son los posibles problemas?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.