Android中无法获取location位置

在做Android GPS应用开发时

LocationManager locationMng = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

Location location = locationMng.getLastKnownLocation(LocationManager.GPS_PROVIDER);

location经常返回的是null,我想肯定是跟天朝的什么什么有关,第一次是没法获取location的,需要反复获取。

那么要写永真循环来获取位置信息么?比如

while(location == null){

     获取位置信息代码;

}

这样做太低效了,而且程序容易崩溃,仔细看Android文档,发现有个requestLocationUpdates方法很好用:

LocationManager locationMng = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

locationMng.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, new LocationListener(){
                @Override
                public void onLocationChanged(Location location) {
                    // TODO Auto-generated method stub
                    printMsg(location);      
                }

                @Override
                public void onProviderDisabled(String provider) {
                    // TODO Auto-generated method stub
                   
                }

                @Override
                public void onProviderEnabled(String provider) {
                    // TODO Auto-generated method stub
                   
                }

                @Override
                public void onStatusChanged(String provider, int status, Bundle extras) {
                    // TODO Auto-generated method stub
                   
                }
               
            });

requestLocationUpdates后面的四个参数:

1.provider,定位不好的可以换成NETWORK_PROVIDER

 2.隔多少时间请求这个方法

3.走动多少距离请求这个方法

4.位置监听器

通过Override位置监听器中的onLocationChanged方法就可以实现不停刷新location位置信息啦,在真机上测试是OK的!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值