Join us on the livestream at Android Dev Summit on 7-8 November 2018, starting at 10AM PDT!

Criteria

public class Criteria
extends Object implements Parcelable

java.lang.Object
   ↳ android.location.Criteria


A class indicating the application criteria for selecting a location provider. Providers may be ordered according to accuracy, power usage, ability to report altitude, speed, bearing, and monetary cost.

Summary

Constants

int ACCURACY_COARSE

A constant indicating an approximate accuracy requirement

int ACCURACY_FINE

A constant indicating a finer location accuracy requirement

int ACCURACY_HIGH

a constant indicating a high accuracy requirement - may be used for horizontal, altitude, speed or bearing accuracy.

int ACCURACY_LOW

A constant indicating a low location accuracy requirement - may be used for horizontal, altitude, speed or bearing accuracy.

int ACCURACY_MEDIUM

A constant indicating a medium accuracy requirement - currently used only for horizontal accuracy.

int NO_REQUIREMENT

A constant indicating that the application does not choose to place requirement on a particular feature.

int POWER_HIGH

A constant indicating a high power requirement.

int POWER_LOW

A constant indicating a low power requirement.

int POWER_MEDIUM

A constant indicating a medium power requirement.

Inherited constants

Fields

public static final Creator<Criteria> CREATOR

Public constructors

Criteria()

Constructs a new Criteria object.

Criteria(Criteria criteria)

Constructs a new Criteria object that is a copy of the given criteria.

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

int getAccuracy()

Returns a constant indicating desired accuracy of location Accuracy may be ACCURACY_FINE if desired location is fine, else it can be ACCURACY_COARSE.

int getBearingAccuracy()

Returns a constant indicating the desired bearing accuracy.

int getHorizontalAccuracy()

Returns a constant indicating the desired horizontal accuracy (latitude and longitude).

int getPowerRequirement()

Returns a constant indicating the desired power requirement.

int getSpeedAccuracy()

Returns a constant indicating the desired speed accuracy Accuracy may be ACCURACY_LOW, ACCURACY_HIGH, or NO_REQUIREMENT.

int getVerticalAccuracy()

Returns a constant indicating the desired vertical accuracy (altitude).

boolean isAltitudeRequired()

Returns whether the provider must provide altitude information.

boolean isBearingRequired()

Returns whether the provider must provide bearing information.

boolean isCostAllowed()

Returns whether the provider is allowed to incur monetary cost.

boolean isSpeedRequired()

Returns whether the provider must provide speed information.

void setAccuracy(int accuracy)

Indicates the desired accuracy for latitude and longitude.

void setAltitudeRequired(boolean altitudeRequired)

Indicates whether the provider must provide altitude information.

void setBearingAccuracy(int accuracy)

Indicates the desired bearing accuracy.

void setBearingRequired(boolean bearingRequired)

Indicates whether the provider must provide bearing information.

void setCostAllowed(boolean costAllowed)

Indicates whether the provider is allowed to incur monetary cost.

void setHorizontalAccuracy(int accuracy)

Indicates the desired horizontal accuracy (latitude and longitude).

void setPowerRequirement(int level)

Indicates the desired maximum power level.

void setSpeedAccuracy(int accuracy)

Indicates the desired speed accuracy.

void setSpeedRequired(boolean speedRequired)

Indicates whether the provider must provide speed information.

void setVerticalAccuracy(int accuracy)

Indicates the desired vertical accuracy (altitude).

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel parcel, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

ACCURACY_COARSE

added in API level 1
public static final int ACCURACY_COARSE

A constant indicating an approximate accuracy requirement

Constant Value: 2 (0x00000002)

ACCURACY_FINE

added in API level 1
public static final int ACCURACY_FINE

A constant indicating a finer location accuracy requirement

Constant Value: 1 (0x00000001)

ACCURACY_HIGH

added in API level 9
public static final int ACCURACY_HIGH

a constant indicating a high accuracy requirement - may be used for horizontal, altitude, speed or bearing accuracy. For horizontal and vertical position this corresponds roughly to an accuracy of less than 100 meters.

Constant Value: 3 (0x00000003)

ACCURACY_LOW

added in API level 9
public static final int ACCURACY_LOW

A constant indicating a low location accuracy requirement - may be used for horizontal, altitude, speed or bearing accuracy. For horizontal and vertical position this corresponds roughly to an accuracy of greater than 500 meters.

Constant Value: 1 (0x00000001)

ACCURACY_MEDIUM

added in API level 9
public static final int ACCURACY_MEDIUM

A constant indicating a medium accuracy requirement - currently used only for horizontal accuracy. For horizontal position this corresponds roughly to to an accuracy of between 100 and 500 meters.

Constant Value: 2 (0x00000002)

NO_REQUIREMENT

added in API level 1
public static final int NO_REQUIREMENT

A constant indicating that the application does not choose to place requirement on a particular feature.

Constant Value: 0 (0x00000000)

POWER_HIGH

added in API level 1
public static final int POWER_HIGH

A constant indicating a high power requirement.

Constant Value: 3 (0x00000003)

POWER_LOW

added in API level 1
public static final int POWER_LOW

A constant indicating a low power requirement.

Constant Value: 1 (0x00000001)

POWER_MEDIUM

added in API level 1
public static final int POWER_MEDIUM

A constant indicating a medium power requirement.

Constant Value: 2 (0x00000002)

Fields

CREATOR

added in API level 1
public static final Creator<Criteria> CREATOR

Public constructors

Criteria

added in API level 1
public Criteria ()

Constructs a new Criteria object. The new object will have no requirements on accuracy, power, or response time; will not require altitude, speed, or bearing; and will not allow monetary cost.

Criteria

added in API level 1
public Criteria (Criteria criteria)

Constructs a new Criteria object that is a copy of the given criteria.

Parameters
criteria Criteria

Public methods

describeContents

added in API level 1
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(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.

getAccuracy

added in API level 1
public int getAccuracy ()

Returns a constant indicating desired accuracy of location Accuracy may be ACCURACY_FINE if desired location is fine, else it can be ACCURACY_COARSE.

Returns
int

getBearingAccuracy

added in API level 9
public int getBearingAccuracy ()

Returns a constant indicating the desired bearing accuracy. Accuracy may be ACCURACY_LOW, ACCURACY_HIGH, or NO_REQUIREMENT.

Returns
int

getHorizontalAccuracy

added in API level 9
public int getHorizontalAccuracy ()

Returns a constant indicating the desired horizontal accuracy (latitude and longitude). Accuracy may be ACCURACY_LOW, ACCURACY_MEDIUM, ACCURACY_HIGH or NO_REQUIREMENT.

Returns
int

getPowerRequirement

added in API level 1
public int getPowerRequirement ()

Returns a constant indicating the desired power requirement. The returned

Returns
int

getSpeedAccuracy

added in API level 9
public int getSpeedAccuracy ()

Returns a constant indicating the desired speed accuracy Accuracy may be ACCURACY_LOW, ACCURACY_HIGH, or NO_REQUIREMENT.

Returns
int

getVerticalAccuracy

added in API level 9
public int getVerticalAccuracy ()

Returns a constant indicating the desired vertical accuracy (altitude). Accuracy may be ACCURACY_LOW, ACCURACY_HIGH, or NO_REQUIREMENT.

Returns
int

isAltitudeRequired

added in API level 1
public boolean isAltitudeRequired ()

Returns whether the provider must provide altitude information. Not all fixes are guaranteed to contain such information.

Returns
boolean

isBearingRequired

added in API level 1
public boolean isBearingRequired ()

Returns whether the provider must provide bearing information. Not all fixes are guaranteed to contain such information.

Returns
boolean

isCostAllowed

added in API level 1
public boolean isCostAllowed ()

Returns whether the provider is allowed to incur monetary cost.

Returns
boolean

isSpeedRequired

added in API level 1
public boolean isSpeedRequired ()

Returns whether the provider must provide speed information. Not all fixes are guaranteed to contain such information.

Returns
boolean

setAccuracy

added in API level 1
public void setAccuracy (int accuracy)

Indicates the desired accuracy for latitude and longitude. Accuracy may be ACCURACY_FINE if desired location is fine, else it can be ACCURACY_COARSE. More accurate location may consume more power and may take longer.

Parameters
accuracy int

Throws
IllegalArgumentException if accuracy is not one of the supported constants

setAltitudeRequired

added in API level 1
public void setAltitudeRequired (boolean altitudeRequired)

Indicates whether the provider must provide altitude information. Not all fixes are guaranteed to contain such information.

Parameters
altitudeRequired boolean

setBearingAccuracy

added in API level 9
public void setBearingAccuracy (int accuracy)

Indicates the desired bearing accuracy. Accuracy may be ACCURACY_LOW, ACCURACY_HIGH, or NO_REQUIREMENT. More accurate location may consume more power and may take longer.

Parameters
accuracy int

Throws
IllegalArgumentException if accuracy is not one of the supported constants

setBearingRequired

added in API level 1
public void setBearingRequired (boolean bearingRequired)

Indicates whether the provider must provide bearing information. Not all fixes are guaranteed to contain such information.

Parameters
bearingRequired boolean

setCostAllowed

added in API level 1
public void setCostAllowed (boolean costAllowed)

Indicates whether the provider is allowed to incur monetary cost.

Parameters
costAllowed boolean

setHorizontalAccuracy

added in API level 9
public void setHorizontalAccuracy (int accuracy)

Indicates the desired horizontal accuracy (latitude and longitude). Accuracy may be ACCURACY_LOW, ACCURACY_MEDIUM, ACCURACY_HIGH or NO_REQUIREMENT. More accurate location may consume more power and may take longer.

Parameters
accuracy int

Throws
IllegalArgumentException if accuracy is not one of the supported constants

setPowerRequirement

added in API level 1
public void setPowerRequirement (int level)

Indicates the desired maximum power level. The level parameter must be one of NO_REQUIREMENT, POWER_LOW, POWER_MEDIUM, or POWER_HIGH.

Parameters
level int

setSpeedAccuracy

added in API level 9
public void setSpeedAccuracy (int accuracy)

Indicates the desired speed accuracy. Accuracy may be ACCURACY_LOW, ACCURACY_HIGH, or NO_REQUIREMENT. More accurate location may consume more power and may take longer.

Parameters
accuracy int

Throws
IllegalArgumentException if accuracy is not one of the supported constants

setSpeedRequired

added in API level 1
public void setSpeedRequired (boolean speedRequired)

Indicates whether the provider must provide speed information. Not all fixes are guaranteed to contain such information.

Parameters
speedRequired boolean

setVerticalAccuracy

added in API level 9
public void setVerticalAccuracy (int accuracy)

Indicates the desired vertical accuracy (altitude). Accuracy may be ACCURACY_LOW, ACCURACY_MEDIUM, ACCURACY_HIGH or NO_REQUIREMENT. More accurate location may consume more power and may take longer.

Parameters
accuracy int

Throws
IllegalArgumentException if accuracy is not one of the supported constants

toString

added in API level 1
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

added in API level 1
public void writeToParcel (Parcel parcel, 
                int flags)

Flatten this object in to a Parcel.

Parameters
parcel Parcel: The Parcel in which the object should be written.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE.