我需要让我的应用程序监控 GPS 适配器是否启用或禁用。我并不关心当前是否运行实际的 GPS 功能——我需要 GPS 适配器的状态。
我可以通过调用手动执行此操作:
String providers = Settings.Secure.getString(getContentResolver(),
Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
如果列出了“gps”,则它处于活动状态,否则不是。但我找不到任何有关在用户启用或禁用 GPS 时收到通知的文档。我确实尝试在 LocationManager 中使用 addGpsStatusListener,但这仅在获取实际 GPS 修复时发出通知(例如,如果正在使用地图应用程序)。
有任何想法吗?
Location ContentObserver 没关系,我找到了答案;
getContentResolver().registerContentObserver(
Settings.Secure.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED),
false,
new LocationContentObserver ( new Handler())
);
class LocationContentObserver extends ContentObserver {
public LocationContentObserver( Handler h ) {
super( h );
}
public void onChange(boolean selfChange) {
SendNotification(false);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)