我有一个使用GPS数据的应用程序,我正在使用
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
是否有使用此服务的最佳做法。假如某些应用已经调用了这个,我可以使用相同的GPS数据,而不是再次调用服务。
我该怎么做?
快乐编码
答案 0 :(得分:1)
您的问题没有任何意义,因为NotificationManager
与GPS和/或GPS数据无关。
第二部分回答:你不能重复使用另一个应用程序的GPS数据,你只能询问最后一个已知位置,并希望这不会为空。如果为空,则应使用LocationManager
而不是NotificationManager
自行获取排名。
答案 1 :(得分:0)
要从GPS接收数据,您应该使用以下代码:
locationMan= (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
locationMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
LocationListener locationListener= new LocationListener() {
public void onLocationChanged(Location location) {
//TODO be sure the new position is really better then the one already had.
lastPos= location;
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
public void onProviderEnabled(String provider) {
}
public void onProviderDisabled(String provider) {
}
};
这是一个简单的倾听者,因此每次Android知道当前位置的变化时,它都会调用所有听众,包括您的应用和其他应用。因此,无论LOCATION_SEVICE添加了多少个侦听器,发现位置的过程都只运行一次。
完成GPS使用后
locationMan.removeUpdates(locationListener);
删除你的听众
答案 2 :(得分:-2)
确保您已添加网络访问权限和GPS 确保您已将Google Map API密钥添加到xml
中