概述(请求位置更新以接收它们):
如果没有明确要求更新位置,您的设备可能不会搜索此信息。以下对我有用,其中 membermGnssStatusCallback
是您的GnssStatus.Callback并且 Activity (或其他类)实现LocationListener;在这里,这个活动实现了它,我将this
作为最终参数传递给requestLocationUpdates
and removeUpdates
。30000
表示我们每 30 秒(30000毫秒)请求一次更新,表示0
我们只希望设备移动 > 0 米时进行更新。
您可能需要找出可用的提供程序等。
请参阅Android 培训。
例子
public class GnssActivity extends Activity implements LocationListener {
GnssStatus.Callback mGnssStatusCallback;
LocationManager mLocationManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mLocationManager =
(LocationManager) getSystemService(LOCATION_SERVICE);
mGnssStatusCallback = new GnssStatus.Callback() {
// TODO: add your code here!
};
}
@Override
protected void onStart() {
super.onStart();
mLocationManager.registerGnssStatusCallback(mGnssStatusCallback);
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 30000, 0, this
);
}
@Override
protected void onStop() {
mLocationManager.removeUpdates(this);
mLocationManager.unregisterGnssStatusCallback(
mGnssStatusCallback
);
super.onStop()
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
⋮
}