监听 GPS 状态变化

Posted

技术标签:

【中文标题】监听 GPS 状态变化【英文标题】:Listen for GPS Status change 【发布时间】:2017-05-31 14:13:47 【问题描述】:

我需要在用户打开或关闭 GPS 时进行监听,并据此采取行动。 我知道这可以使用 GPSStatus 类获得,但已被弃用。 我现在该怎么做?

【问题讨论】:

【参考方案1】:

你可以使用 LocationListener !!

private class MyLocationListener implements LocationListener 

        @Override
        public void onLocationChanged(Location loc) 
            Toast.makeText(
                    getBaseContext(),
                    "Location changed: Lat: " + loc.getLatitude() + " Lng: "
                            + loc.getLongitude(), Toast.LENGTH_SHORT).show();
            //handlePostion(loc);
        
        @Override
        public void onProviderDisabled(String provider) 


        @Override
        public void onProviderEnabled(String provider) 

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) 
    

以及下面如何使用这个监听器

mLocationListener = new MyLocationListener();
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        mLocationListener = new MyLocationListener();
        mLocationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 5000, 10, mLocationListener);

在 providerDisabled 回调中,您可以知道 GPS 何时关闭

【讨论】:

为什么要在第二个块上声明 mLLocationListener 两次?

以上是关于监听 GPS 状态变化的主要内容,如果未能解决你的问题,请参考以下文章

react监听仓库数据变化

是否有官方或库函数来验证 React Native 中状态和 GPS 权限的变化?

android studio 中的 GPS 状态 - API 级别 29

如何监听 FutureBuilder 小部件内的状态变化并反映状态变化?

Android BottomSheetDialogFragment 状态变化监听器

react-native 横竖屏控制及状态变化监听