FileDocCategorySizeDatePackage
PermissionInfo.javaAPI DocAndroid 5.1 API8182Thu Mar 12 22:22:10 GMT 2015android.content.pm

PermissionInfo

public class PermissionInfo extends PackageItemInfo implements android.os.Parcelable
Information you can retrieve about a particular security permission known to the system. This corresponds to information collected from the AndroidManifest.xml's <permission> tags.

Fields Summary
public static final int
PROTECTION_NORMAL
A normal application value for {@link #protectionLevel}, corresponding to the normal value of {@link android.R.attr#protectionLevel}.
public static final int
PROTECTION_DANGEROUS
Dangerous value for {@link #protectionLevel}, corresponding to the dangerous value of {@link android.R.attr#protectionLevel}.
public static final int
PROTECTION_SIGNATURE
System-level value for {@link #protectionLevel}, corresponding to the signature value of {@link android.R.attr#protectionLevel}.
public static final int
PROTECTION_SIGNATURE_OR_SYSTEM
System-level value for {@link #protectionLevel}, corresponding to the signatureOrSystem value of {@link android.R.attr#protectionLevel}.
public static final int
PROTECTION_FLAG_SYSTEM
Additional flag for {@link #protectionLevel}, corresponding to the system value of {@link android.R.attr#protectionLevel}.
public static final int
PROTECTION_FLAG_DEVELOPMENT
Additional flag for {@link #protectionLevel}, corresponding to the development value of {@link android.R.attr#protectionLevel}.
public static final int
PROTECTION_FLAG_APPOP
Additional flag for {@link #protectionLevel}, corresponding to the appop value of {@link android.R.attr#protectionLevel}.
public static final int
PROTECTION_MASK_BASE
Mask for {@link #protectionLevel}: the basic protection type.
public static final int
PROTECTION_MASK_FLAGS
Mask for {@link #protectionLevel}: additional flag bits.
public int
protectionLevel
The level of access this permission is protecting, as per {@link android.R.attr#protectionLevel}. Values may be {@link #PROTECTION_NORMAL}, {@link #PROTECTION_DANGEROUS}, or {@link #PROTECTION_SIGNATURE}. May also include the additional flags {@link #PROTECTION_FLAG_SYSTEM} or {@link #PROTECTION_FLAG_DEVELOPMENT} (which only make sense in combination with the base {@link #PROTECTION_SIGNATURE}.
public String
group
The group this permission is a part of, as per {@link android.R.attr#permissionGroup}.
public static final int
FLAG_COSTS_MONEY
Flag for {@link #flags}, corresponding to costsMoney value of {@link android.R.attr#permissionFlags}.
public int
flags
Additional flags about this permission as given by {@link android.R.attr#permissionFlags}.
public int
descriptionRes
A string resource identifier (in the package's resources) of this permission's description. From the "description" attribute or, if not set, 0.
public CharSequence
nonLocalizedDescription
The description string provided in the AndroidManifest file, if any. You probably don't want to use this, since it will be null if the description is in a resource. You probably want {@link PermissionInfo#loadDescription} instead.
public static final Creator
CREATOR
Constructors Summary
public PermissionInfo()

    
public PermissionInfo(PermissionInfo orig)

        super(orig);
        protectionLevel = orig.protectionLevel;
        flags = orig.flags;
        group = orig.group;
        descriptionRes = orig.descriptionRes;
        nonLocalizedDescription = orig.nonLocalizedDescription;
    
private PermissionInfo(android.os.Parcel source)


       
        super(source);
        protectionLevel = source.readInt();
        flags = source.readInt();
        group = source.readString();
        descriptionRes = source.readInt();
        nonLocalizedDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
    
Methods Summary
public intdescribeContents()

        return 0;
    
public static intfixProtectionLevel(int level)

hide


      
         
        if (level == PROTECTION_SIGNATURE_OR_SYSTEM) {
            level = PROTECTION_SIGNATURE | PROTECTION_FLAG_SYSTEM;
        }
        return level;
    
public java.lang.CharSequenceloadDescription(PackageManager pm)
Retrieve the textual description of this permission. This will call back on the given PackageManager to load the description from the application.

param
pm A PackageManager from which the label can be loaded; usually the PackageManager from which you originally retrieved this item.
return
Returns a CharSequence containing the permission's description. If there is no description, null is returned.

        if (nonLocalizedDescription != null) {
            return nonLocalizedDescription;
        }
        if (descriptionRes != 0) {
            CharSequence label = pm.getText(packageName, descriptionRes, null);
            if (label != null) {
                return label;
            }
        }
        return null;
    
public static java.lang.StringprotectionToString(int level)

hide

        String protLevel = "????";
        switch (level&PROTECTION_MASK_BASE) {
            case PermissionInfo.PROTECTION_DANGEROUS:
                protLevel = "dangerous";
                break;
            case PermissionInfo.PROTECTION_NORMAL:
                protLevel = "normal";
                break;
            case PermissionInfo.PROTECTION_SIGNATURE:
                protLevel = "signature";
                break;
            case PermissionInfo.PROTECTION_SIGNATURE_OR_SYSTEM:
                protLevel = "signatureOrSystem";
                break;
        }
        if ((level&PermissionInfo.PROTECTION_FLAG_SYSTEM) != 0) {
            protLevel += "|system";
        }
        if ((level&PermissionInfo.PROTECTION_FLAG_DEVELOPMENT) != 0) {
            protLevel += "|development";
        }
        if ((level&PermissionInfo.PROTECTION_FLAG_APPOP) != 0) {
            protLevel += "|appop";
        }
        return protLevel;
    
public java.lang.StringtoString()

        return "PermissionInfo{"
            + Integer.toHexString(System.identityHashCode(this))
            + " " + name + "}";
    
public voidwriteToParcel(android.os.Parcel dest, int parcelableFlags)

        super.writeToParcel(dest, parcelableFlags);
        dest.writeInt(protectionLevel);
        dest.writeInt(flags);
        dest.writeString(group);
        dest.writeInt(descriptionRes);
        TextUtils.writeToParcel(nonLocalizedDescription, dest, parcelableFlags);