android如何知道我是否有位置可用

时间:2012-03-26 15:36:34

标签: android gps location

我做了一个监听器,检查GPS状态是否已更改.. 我希望听众检查手机是否能够获得位置,如果现在扔gps,然后扔大提琴细胞.. 我怎样才能将它添加到我的听众中?

我的听众:

locMgr.addGpsStatusListener(new GpsStatus.Listener() 
    { 
        public void onGpsStatusChanged(int event) 
        { 
                switch(event) 
                { 
                        case GpsStatus.GPS_EVENT_STARTED: 
                            locationStatus.setText("Location is On");   
                                break ; 
                        case GpsStatus.GPS_EVENT_STOPPED: 
                             locationStatus.setText("Location is Off");  
                                break ; 
                } 
        }
    }) ; 

2 个答案:

答案 0 :(得分:0)

写一个课程

public class MyLocationListener implements LocationListener {
        /**
         * This function handles location change event if location is found
         */
        public void onLocationChanged(Location loc) {...

现在,只要你获得一些GPS位置,它就会进入onLocationChanged()方法。

不要忘记在清单中添加以下权限 -

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

还要确保您同时添加位置监听器GPS以及网络 -

locationManager.requestLocationUpdates(
                LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
                0, locListener);

答案 1 :(得分:0)

如果您的意思是想了解具体的提供商可用性,可以使用:

LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); //or other provider.

使用LocationListener回调跟踪其可用性:

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }

当然,您需要在清单中使用适当的位置权限。