5、使用NMEA接口
在OPhone OS上除了Locaiton的接口,还提供了NMEA的接口,这样很多已有的导航应用可以更方便的porting到OPhone OS上。
import android.location.LocationManager.java;
import android.location.NmeaListener.java;
private LocationManager mService;
private NmeaListener mListener = new NmeaListener() {
// 底层上报的NMEA语句通过此接口通知应用
void onNmeaChanged(String nmea) {
}
// 同LocationListener
void onStatusChanged(String provider, int status, Bundle extras) {
}
// 同LocationListener
void onProviderEnabled(String provider) {
}
// 同LocationListener
void onProviderDisabled(String provider) {
}
}
try {
// 请求NMEA
mService.requestNmeaUpdates(LocationManager.GPS_PROVIDER, 0, 0, mListener);
} catch (SecurityException ex1) {
} catch (IllegalArgumentException ex2) {
} catch (RuntimeException ex3) {
}
...
try {
// 关闭NMEA
mService.removeNmeaUpdates(mListener);
} catch (IllegalArgumentException ex) {
}
import android.location.NmeaListener.java;
private LocationManager mService;
private NmeaListener mListener = new NmeaListener() {
// 底层上报的NMEA语句通过此接口通知应用
void onNmeaChanged(String nmea) {
}
// 同LocationListener
void onStatusChanged(String provider, int status, Bundle extras) {
}
// 同LocationListener
void onProviderEnabled(String provider) {
}
// 同LocationListener
void onProviderDisabled(String provider) {
}
}
try {
// 请求NMEA
mService.requestNmeaUpdates(LocationManager.GPS_PROVIDER, 0, 0, mListener);
} catch (SecurityException ex1) {
} catch (IllegalArgumentException ex2) {
} catch (RuntimeException ex3) {
}
...
try {
// 关闭NMEA
mService.removeNmeaUpdates(mListener);
} catch (IllegalArgumentException ex) {
}
结束语
OPhone OS上的位置服务,目标就是提供简单,统一的接口给第三方应用开发者,帮助他们方便的使用位置服务,接口仍在完善当中。(作者:周安乐)