监听 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 Native 中状态和 GPS 权限的变化?
android studio 中的 GPS 状态 - API 级别 29
如何监听 FutureBuilder 小部件内的状态变化并反映状态变化?