How to get an icon for Android resolution?

The XML specification for <permission> and <permission-group> refers to the icon you see in settings | Application Information | Access rights.

If I already have the permission that the application needs from the line from the PackageInfo request, for example "android.permission.INTERNET", how can I get the appropriate permission and permission group icon?

+6
source share
2 answers

Accordingly, the following approach should work: 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; 

There is also a method in PackageManager called getPermissionGroupInfo .

+2
source

Here is my code.

 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

+2
source

All Articles