第一种:Network Provider
LocationManager lm = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); String locationProvider = LocationManager.NETWORK_PROVIDER; Location location = lm.getLastKnownLocation(locationProvider); TextView tv = (TextView)findViewById(R.id.textview); tv.setText("gps enabled"+location.getLongitude() + "," + location.getLatitude());
同时用GPS_PROVIDER和NETWORK_PROVIDER
http://blog.sina.com.cn/s/blog_588508f801010l1n.html
if(lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
{lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);}
else{lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, ll);}
手机位置定位的四种模式:
- GPS定位(GPS_PROVIDER)
- 网络定位(NETWORK_PROVIDER)
- 被动定位(PASSIVE_PROVIDER)
- 融合定位(FUSED_PROVIDER)
监视位置变化:locationManager.requestLocationUpdates(provider, 2000, 0, locationListener);
第一个参数是位置提供者;第二个参数是产生位置改变时间的时间间隔(微秒);第三个参数是距离条件(米);第四个参数是回调函数,用来处理位置改变时间。实现locationListener的代码如下:
- onLocationChanged() 在位置改变时被调用
- onStatusChanged() 在定位功能硬件状态改变时被调用
- onProviderEnabled 在用户启用具有定位功能的硬件时被调用
- onProviderDisabled() 在用户禁用具有定位功能的硬件时被调用