Android 11 中的更改,不再能够提供模拟位置
Changes in Android 11, no longer able to provide mock location
我有一个提供模拟位置的应用程序,在 Android 10 之前工作正常,但是在 Android 11 时它不再工作,我只是收到错误消息“推送模拟位置 gps 时出错提供者不是测试提供者”
我搜索了文档,但找不到有关可能导致错误的原因的任何信息。
这是权限问题吗?我不确定发生了什么变化,APK 在 Android 10 及以下但不是 11 上运行良好。
万一其他人遇到这个问题,在将提供商添加到位置管理器时,我无法再指定 'no requirement' 的幂或 'high' 的准确度。
我必须指定低功率和中等精度。我了解强大的功能,但不确定为什么 android 11.
不允许高准确度
经过大量研究,我发现以下有用的解决方案很有用。实际上错误本身指出
powerRequirement is out of range of [1, 3] (too low)
添加测试提供商时,您可以将功率要求从 0 分配到 1。
locationManager.addTestProvider(this._provider, false, false, false, false, true, true, true, **1**, 1);
我有一个提供模拟位置的应用程序,在 Android 10 之前工作正常,但是在 Android 11 时它不再工作,我只是收到错误消息“推送模拟位置 gps 时出错提供者不是测试提供者” 我搜索了文档,但找不到有关可能导致错误的原因的任何信息。 这是权限问题吗?我不确定发生了什么变化,APK 在 Android 10 及以下但不是 11 上运行良好。
万一其他人遇到这个问题,在将提供商添加到位置管理器时,我无法再指定 'no requirement' 的幂或 'high' 的准确度。 我必须指定低功率和中等精度。我了解强大的功能,但不确定为什么 android 11.
不允许高准确度经过大量研究,我发现以下有用的解决方案很有用。实际上错误本身指出
powerRequirement is out of range of [1, 3] (too low)
添加测试提供商时,您可以将功率要求从 0 分配到 1。
locationManager.addTestProvider(this._provider, false, false, false, false, true, true, true, **1**, 1);