最近在搞Android的手机定位,结果location一直返回null,上网查了查很多人也遇到了这个问题,有的人直接写了一个循环,不断的获取location,这样显然是不太合理的,因为经过我的测试,获得一个location大概需要10-15s左右,循环相当于location为null时就重新通过LocationManager 获取location,根本等不了10s。所以后来研究到了用一个LocationListener,当获得location或者location发生变化后就会回调LocationListener中的onLoCationChange方法。利用这种定位代理模式很好地解决了这个问题。
附上代码:
判断GPS是否启用的函数
private void openGPSSettings2() {
LocationManager alm = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
if (alm
.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {
Toast.makeText(this, "GPS模块正常", Toast.LENGTH_SHORT)
.show();
doWork();