想实现一个定位的功能,用GPS可以实现了,但是使用网络来定位却遇到了一点问题.
先贴代码:
- Java code
private LocationManager locationManager;locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);[color=#FF0000]if(!locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){[/color] ......}Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, this);
运行到isProviderEnabled方法是总是返回false,即使我把gprs,gps,wifi都打开了还是如此.
而且运行后总是会调用LocationListener的public void onProviderDisabled(String provider) 方法,并没有调用public void onLocationChanged(Location location)方法
有人知道原因吗?
非常感谢!
------解决方案--------------------
加行这个试试
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
------解决方案--------------------
------解决方案--------------------
isProviderEnabled(LocationManager.GPS_PROVIDER)
你有没有试过?
------解决方案--------------------
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, this);这块设置成了只使用基站定位,你设置成GPS定位试试
------解决方案--------------------
网络定位分基站和WIFI,如果在同一个基站的范围,定位数据肯定一样,WIFI也类似
------解决方案--------------------
- Java code
public void onProviderDisabled(String provider)
------解决方案--------------------
在一个网络定位是手机GPRS定位,是从google服务器取得的gson数据,定位包括,gps定位,基站定位,网络定位的
------解决方案--------------------
你可以用
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.getProviders(true),
去看看返回的list中有没有LocationManager.NETWORK_PROVIDER,