我正在尝试在Android上制作位置应用 当我在模拟器上运行应用程序并发送虚假的经度和纬度时,它会在日志中显示经度和纬度,但是当我在手机上运行它时它不会给我当前的位置坐标或日志中的任何输出 这是我的代码
public void getLocation(){
final LocationManager manager= (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener listener= new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
loc=new ArrayList<SetLoc>();
SetLoc vari= new SetLoc();
double longitude=location.getLongitude();
double latitude=location.getLatitude();
String lng=""+longitude;
String lat=""+latitude;
Log.d("onLocationChange", lng+" "+lat );
vari.setlon(lng);
Log.d("setlon", "setting the longitude"+lng);
vari.setlat(lat);
loc.add(vari);
String url="http://10.16.49.234:8080/WebApplication6/webresources/generic";
sendcord(lng,lat,url);
Log.d("onchangelocation", "aftersnd.execute()");
}
};
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
}`
请帮助
答案 0 :(得分:2)
您的代码看起来很完美,我认为您正在使用Null,因为您的设备中没有以前的GPS值。这样做,
将应用程序加载到设备中,移至开放天空,运行应用程序,等待2分钟。回到办公室里面,然后执行上面的代码
或强>
在开放天空 ..
中运行该应用程序答案 1 :(得分:1)
您是否专门请求GPS数据,您确定它正在您正在测试的设备上启用吗?
您是否考虑过与Google Play服务捆绑在一起的融合位置提供商?使用此提供商,您可以立即检索上一个已知位置并以电池效率方式请求更新,因为多个应用与Google Play服务进行通信,而不是直接与设备的传感器进行通信。
http://developer.android.com/google/play-services/location.html