阻止用户更改 GPS 状态 Fused Location API

Posted

技术标签:

【中文标题】阻止用户更改 GPS 状态 Fused Location API【英文标题】:Prevent user to change GPS status Fused Location API 【发布时间】:2015-05-16 07:25:10 【问题描述】:

我正在使用 Google API(Fuse Location Provider)来跟踪设备的位置,但我需要防止用户禁用 GPS。我阅读了很多答案,但我发现的只是:不,不能做,植根设备或漏洞利用。一位朋友刚刚向我展示了一个无需 root 设备即可完成此操作的家长控制应用程序。关于用户隐私等。该代码将仅用于公司的设备中,用户了解这一点。

至少我需要一种方法来检测 GPS 是否已被停用以通知用户,顺便说一下我在 Google API 中找不到对此的任何引用。

提前非常感谢。

【问题讨论】:

【参考方案1】:

GpsStatus.Listener - Try reading this.

你可以重写 onGpsStatusChanged 方法:

@Override
abstract void onGpsStatusChanged(int event)
    if (event==GPS_EVENT_STOPPED)

        LocationManager mlocManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
        boolean enabled = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        if(!enabled)
        //toggle your notification
        
     

【讨论】:

谢谢!你给我指出了正确的方向。唯一的问题是,有时我会在 GPS 无法修复时收到 'GPS_EVENT_STOPPED',即在室内,即使 GPS 仍然处于活动状态,有什么建议吗?

以上是关于阻止用户更改 GPS 状态 Fused Location API的主要内容,如果未能解决你的问题,请参考以下文章

从 Fused Location Provider 获取 GPS 或网络提供商

在我使用 Fused Location Client 的 android 应用程序中,为啥使用此代码时 GPS 会过时

Fused Location Provider 是不错的选择吗?

使用 Fused Location Provider 查找位置源

使用 React Context 阻止登录状态在主页中更改

Android:关闭位置时,Google Fused Location 不起作用