# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Constants | Inherited Constants | Fields | Ctors | Methods | Inherited Methods

# FeatureInfo

`public class FeatureInfo`
`extends Object` `implements Parcelable`

java.lang.Object
↳ | android.content.pm.FeatureInfo

Definition of a single optional hardware or software feature of an Android device.

This object is used to represent both features supported by a device and features requested by an app. Apps can request that certain features be available as a prerequisite to being installed through the `uses-feature` tag in their manifests.

Starting in `Build.VERSION_CODES.N`, features can have a version, which must always be backwards compatible. That is, a device claiming to support version 3 of a specific feature must support apps requesting version 1 of that feature.

## Summary

### Constants
`int` | `FLAG_REQUIRED` Set on `flags` if this feature has been required by the application.
`int` | `GL_ES_VERSION_UNDEFINED` Default value for `reqGlEsVersion`;

### Inherited constants
From interface `android.os.Parcelable`
`int` | `CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` | `PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `writeToParcel(Parcel, int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`".

### Fields
`public static final Creator<FeatureInfo>` | `CREATOR`
`public int` | `flags` Additional flags.
`public String` | `name` The name of this feature, for example "android.hardware.camera".
`public int` | `reqGlEsVersion` The GLES version used by an application.
`public int` | `version` If this object represents a feature supported by a device, this is the maximum version of this feature supported by the device.

### Public constructors
`FeatureInfo()`
`FeatureInfo(FeatureInfo orig)`

### Public methods
`int` | `describeContents()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
`String` | `getGlEsVersion()` This method extracts the major and minor version of reqGLEsVersion attribute and returns it as a string.
`String` | `toString()` Returns a string representation of the object.
`void` | `writeToParcel(Parcel dest, int parcelableFlags)` Flatten this object in to a Parcel.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `android.os.Parcelable`
`abstract int` | `describeContents()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
`abstract void` | `writeToParcel(Parcel dest, int flags)` Flatten this object in to a Parcel.

## Constants

### FLAG_REQUIRED

    public static final int FLAG_REQUIRED

Set on `flags` if this feature has been required by the application.

Constant Value: 1 (0x00000001)

### GL_ES_VERSION_UNDEFINED

    public static final int GL_ES_VERSION_UNDEFINED

Default value for `reqGlEsVersion`;

Constant Value: 0 (0x00000000)

## Fields

### CREATOR

    public static final Creator<FeatureInfo> CREATOR

### flags

    public int flags

Additional flags. May be zero or more of `FLAG_REQUIRED`.

### name

    public String name

The name of this feature, for example "android.hardware.camera". If this is null, then this is an OpenGL ES version feature as described in `reqGlEsVersion`.

### reqGlEsVersion

    public int reqGlEsVersion

The GLES version used by an application. The upper order 16 bits represent the major version and the lower order 16 bits the minor version. Only valid if `name` is null.

### version

    public int version

If this object represents a feature supported by a device, this is the maximum version of this feature supported by the device. The device implicitly supports all older versions of this feature.

If this object represents a feature requested by an app, this is the minimum version of the feature required by the app.

When a feature version is undefined by a device, it's assumed to be version 0.

## Public constructors

### FeatureInfo

    public FeatureInfo ()

### FeatureInfo

    public FeatureInfo (FeatureInfo orig)

Parameters
`orig` | `FeatureInfo`

## Public methods

### describeContents

    public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of `writeToParcel(android.os.Parcel, int)`, the return value of this method must include the `CONTENTS_FILE_DESCRIPTOR` bit.

Returns
`int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or `CONTENTS_FILE_DESCRIPTOR`

### getGlEsVersion

    public String getGlEsVersion ()

This method extracts the major and minor version of reqGLEsVersion attribute and returns it as a string. Say reqGlEsVersion value of 0x00010002 is returned as 1.2

Returns
`String` | String representation of the reqGlEsVersion attribute

### toString

    public String toString ()

Returns a string representation of the object. In general, the `toString` method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The `toString` method for class `Object` returns a string consisting of the name of the class of which the object is an instance, the at-sign character ``@`', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

>      getClass().getName() + '@' + Integer.toHexString(hashCode())

Returns
`String` | a string representation of the object.

### writeToParcel

    public void writeToParcel (Parcel dest,
                    int parcelableFlags)

Flatten this object in to a Parcel.

Parameters
`dest` | `Parcel`: The Parcel in which the object should be written.
`parcelableFlags` | `int`: Additional flags about how the object should be written. May be 0 or `Parcelable.PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of `Parcelable.PARCELABLE_WRITE_RETURN_VALUE`, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*