|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.microedition.location.Criteria
public class Criteria
The criteria used for the selection of the location provider
is defined by the values in this class. It is
up to the implementation to provide a LocationProvider
that
can obtain locations constrained by these values.
Instances of Criteria
are used by the application
to indicate criteria for choosing the location provider in the
LocationProvider.getInstance
method call.
The implementation considers the different criteria fields
to choose the location provider that best fits the
defined criteria. The different criteria fields do not have
any defined priority order but the implementation uses some
implementation specific logic to choose the location provider
that can typically best meet the defined criteria.
However, the cost criteria field is treated differently from others. If the application has set the cost field to indicate that the returned location provider is not allowed to incur financial cost to the end user, the implementation MUST guarantee that the returned location provider does not incur cost.
If there is no available location provider that is able to meet all the specified criteria, the implementation is allowed to make its own best effort selection of a location provider that is closest to the defined criteria (provided that the cost criteria is met). However, an implementation is not required to return a location provider if it does not have any available provider that is able to meet these criteria or be sufficiently close to meeting them, where the judgement of sufficiently close is an implementation dependent best effort choice. It is left up to the implementation to consider what is close enough to the specified requirements that it is worth providing the location provider to the application.
The default values for the criteria fields are specified below in
the table. The default values are always
the least restrictive option that will match all location providers.
Default values:
Criteria field |
Default value |
---|---|
Horizontal accuracy |
NO_REQUIREMENT |
Vertical accuracy |
NO_REQUIREMENT |
Preferred response time |
NO_REQUIREMENT |
Power consumption |
NO_REQUIREMENT |
Cost allowed |
true (allowed to cost) |
Speed and course required |
false (not required) |
Altitude required |
false (not required) |
Address info required |
false (not required) |
The implementation of this class only retains the values that
are passed in using the set* methods. It does not try to validate
the values of the parameters in any way.
Applications may set any values it likes, even negative values, but the
consequence may be that no matching LocationProvider
can be
created.
RIM Implementation Mode Chart - Generic
Horizontal Accuracy |
Vertical Accuracy |
Cost |
Power Consumption |
Resulting Mode |
---|---|---|---|---|
N/A |
N/A |
Not Allowed |
N/A |
Autonomous |
N/A |
N/A |
Allowed |
Medium, High or No Requirement |
Assisted |
Not Required |
Not Required |
Allowed |
Low |
Cellsite |
Field Summary | ||
---|---|---|
static int |
NO_REQUIREMENT
Constant indicating no requirements for the parameter. |
|
static int |
POWER_USAGE_HIGH
Level indicating high power consumption allowed. |
|
static int |
POWER_USAGE_LOW
Level indicating only low power consumption allowed. |
|
static int |
POWER_USAGE_MEDIUM
Level indicating average power consumption allowed. |
Constructor Summary | ||
---|---|---|
Criteria()
Constructs a Criteria object. |
Method Summary | ||
---|---|---|
boolean |
equals(Object obj)
Indicates whether some other object is "equal to" this one. |
|
int |
getHorizontalAccuracy()
Returns the horizontal accuracy value set in this Criteria. |
|
int |
getPreferredPowerConsumption()
Returns the preferred power consumption. |
|
int |
getPreferredResponseTime()
Returns the preferred maximum response time. |
|
int |
getVerticalAccuracy()
Returns the vertical accuracy value set in this Criteria. |
|
boolean |
isAddressInfoRequired()
Returns whether the location provider should be able to determine textual address information. |
|
boolean |
isAllowedToCost()
Returns the preferred cost setting. |
|
boolean |
isAltitudeRequired()
Returns whether the location provider should be able to determine altitude. |
|
boolean |
isSpeedAndCourseRequired()
Returns whether the location provider should be able to determine speed and course. |
|
void |
setAddressInfoRequired(boolean addressInfoRequired)
Sets whether the location provider should be able to determine textual address information. |
|
void |
setAltitudeRequired(boolean altitudeRequired)
Sets whether the location provider should be able to determine altitude. |
|
void |
setCostAllowed(boolean costAllowed)
Sets the preferred cost setting. |
|
void |
setHorizontalAccuracy(int accuracy)
Sets the desired horizontal accuracy preference. |
|
void |
setPreferredPowerConsumption(int level)
Sets the preferred maximum level of power consumption. |
|
void |
setPreferredResponseTime(int time)
Sets the desired maximum response time preference. |
|
void |
setSpeedAndCourseRequired(boolean speedAndCourseRequired)
Sets whether the location provider should be able to determine speed and course. |
|
void |
setVerticalAccuracy(int accuracy)
Sets the desired vertical accuracy preference. |
Methods inherited from class java.lang.Object |
---|
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int NO_REQUIREMENT
public static final int POWER_USAGE_LOW
public static final int POWER_USAGE_MEDIUM
public static final int POWER_USAGE_HIGH
Constructor Detail |
---|
public Criteria()
Method Detail |
---|
public int getPreferredPowerConsumption()
Returns the preferred power consumption.
Criteria.NO_REQUIREMENT
, Criteria.POWER_USAGE_LOW
,
Criteria.POWER_USAGE_MEDIUM
, Criteria.POWER_USAGE_HIGH
.Criteria.setPreferredPowerConsumption(int)
public boolean isAllowedToCost()
Returns the preferred cost setting.
Criteria.setCostAllowed(boolean)
public int getVerticalAccuracy()
Returns the vertical accuracy value set in this Criteria.
Criteria.setVerticalAccuracy(int)
public int getHorizontalAccuracy()
Returns the horizontal accuracy value set in this Criteria.
Criteria.setHorizontalAccuracy(int)
public int getPreferredResponseTime()
Returns the preferred maximum response time.
Criteria.setPreferredResponseTime(int)
public boolean isSpeedAndCourseRequired()
Returns whether the location provider should be able to determine speed and course.
Criteria.setSpeedAndCourseRequired(boolean)
public boolean isAltitudeRequired()
Returns whether the location provider should be able to determine altitude.
Criteria.setAltitudeRequired(boolean)
public boolean isAddressInfoRequired()
Returns whether the location provider should be able to determine textual address information.
Criteria.setAddressInfoRequired(boolean)
public void setHorizontalAccuracy(int accuracy)
Sets the desired horizontal accuracy preference. Accuracy is measured in meters. The preference indicates maximum allowed typical 1-sigma standard deviation for the location method. Default is NO_REQUIREMENT, meaning no preference on horizontal accuracy.
accuracy
- the preferred horizontal accuracy in metersCriteria.getHorizontalAccuracy()
public void setVerticalAccuracy(int accuracy)
Sets the desired vertical accuracy preference. Accuracy is measured in meters. The preference indicates maximum allowed typical 1-sigma standard deviation for the location method. Default is NO_REQUIREMENT, meaning no preference on vertical accuracy.
accuracy
- the preferred vertical accuracy in metersCriteria.getVerticalAccuracy()
public void setPreferredResponseTime(int time)
Sets the desired maximum response time preference. This value is typically used by the implementation to determine a location method that typically is able to produce the location information within the defined time. The value is also used as a timeout value if the implementation is not able to produce the result within the defined time. Default is NO_REQUIREMENT, meaning no response time constraint.
time
- the preferred time constraint and timeout value in millisecondsCriteria.getPreferredResponseTime()
public void setPreferredPowerConsumption(int level)
Sets the preferred maximum level of power consumption.
These levels are inherently indeterminable and depend on many factors. It is the judgement of the implementation that defines a positioning method as consuming low power or high power. Default is NO_REQUIREMENT, meaning power consumption is not a quality parameter.
level
- the preferred maximum level of power consumption. Must be one of Criteria.NO_REQUIREMENT
,
Criteria.POWER_USAGE_LOW
, Criteria.POWER_USAGE_MEDIUM
, Criteria.POWER_USAGE_HIGH
.Criteria.getPreferredPowerConsumption()
public void setCostAllowed(boolean costAllowed)
Sets the preferred cost setting.
Sets whether the requests for location determination is allowed to incur any financial cost to the user of the terminal.
The default is true, i.e. the method is allowed to cost.
Note that the platform implementation may not always be able to know if a location method implies cost to the end user or not. If the implementation doesn't know, it MUST assume that it may cost. When this criteria is set to false, the implementation may only return a LocationProvider of which it is certain that using it for determining the location does not cause a per usage cost to the end user.
costAllowed
- false if location determination is not allowed to cost, true if it is allowed to costCriteria.isAllowedToCost()
public void setSpeedAndCourseRequired(boolean speedAndCourseRequired)
Sets whether the location provider should be able to determine speed and course. Default is false.
speedAndCourseRequired
- if set to true, the LocationProvider is required to be able to normally determine the speed and course. if set the false, the speed and course are not required.Criteria.isSpeedAndCourseRequired()
public void setAltitudeRequired(boolean altitudeRequired)
Sets whether the location provider should be able to determine altitude. Default is false.
altitudeRequired
- if set to true, the LocationProvider is required to be able to normally determine the altitude if set the false, the altitude is not required.Criteria.isAltitudeRequired()
public void setAddressInfoRequired(boolean addressInfoRequired)
Sets whether the location provider should be able to determine textual address information. Setting this criteria to true implies that a location provider should be selected that is capable of providing the textual address information. This does not mean that every returned location instance necessarily will have all the address information filled in, though.
Default is false.
addressInfoRequired
- if set to true, the LocationProvider is required to be able to normally determine the textual address information. if set the false, the textual address information is not required.
RIM Implementation Note
Do not call setAddressInfoRequired(true) because the RIM implementation
does not support textual address (See the RIM Implementation Mode Chart below). Invoking LocationProvider.getInstance(Criteria)
with a Criteria
instance that requires textual address
causes it to return null.
Criteria.isAddressInfoRequired()
public boolean equals(Object obj)
Object
The equals
method implements an equivalence relation:
x
,
x.equals(x)
should return true
.
x
and
y
, x.equals(y)
should return
true
if and only if y.equals(x)
returns
true
.
x
,
y
, and z
, if x.equals(y)
returns true
and y.equals(z)
returns
true
, then x.equals(z)
should return
true
.
x
and y
, multiple invocations of x.equals(y)
consistently return true
or consistently return
false
, provided no information used in
equals
comparisons on the object is modified.
x
,
x.equals(null)
should return false
.
The equals method for class Object
implements
the most discriminating possible equivalence relation on objects;
that is, for any reference values x
and y
,
this method returns true
if and only if x
and
y
refer to the same object (x==y
has the
value true
).
equals
in class Object
obj
- the reference object with which to compare.
true
if this object is the same as the obj
argument; false
otherwise.Boolean.hashCode()
,
Hashtable
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal