当前位置: 首页 > 知识库问答 >
问题:

更新Google play服务时默认接受“提高位置准确性”弹出窗口[ROOT]

东门仲卿
2023-03-14

我有一个应用程序,安装在出租车司机用来跟踪位置和驾驶距离的电话中。(手机已根目录,我们对手机拥有所有权限)。在应用程序的第一个实现中,我们使用了LocationManager。RequestLocationUpdate从GPS和网络提供商处获取位置更新。由于我们需要捕获驾驶室行驶的每一公里,我们在位置设置中启用了“高精度”模式。

出于两个原因,我们愿意转移到融合位置提供商

  1. 出于某种原因(android中的一个已知错误:https://code.google.com/p/android/issues/detail?id=57707)网络提供商未提供位置更新
  2. 由于某些原因,设备突然失去GPS定位,并且在设备重新启动之前无法再次获得

我们发现FusedLocationProvider提供了更好的结果,并计划将我们的应用程序更改为使用FusedLocationProvider。现在的问题是-我们的设备有一个旧版本的GooglePlayServices,它没有LocationServices。我们有两个选择

>

  • 使用LocationRequest和LocationClient使用旧版本的FusedLocationProvider。虽然它在室外取得了很好的效果(这是我们的主要要求),但即使启用wifi并具有良好的网络信号,我们也无法在室内获得位置更新(一点也没有)(这似乎也是一个已知的问题(Fusion location Provider API声称位置更新在室内不起作用)。因此,我怀疑Google PlayServices和/或FusedLocationProvider的旧版本中可能存在一些bug,这些bug在以后的版本中会得到修复。

    在所有手机上更新GooglePlayServices(通过在空中安装apk),并使用LocationServices优先获得高精度的位置更新。这个实现甚至在室内也能提供位置更新,这是我们所期望的——这里的问题是当我用apk更新GooglePlayServices时,当我在我的应用程序中请求位置更新时,它会打开两个弹出窗口,一个请求确认以提高位置准确性,另一个是打开google应用程序使用我的应用程序的能力地方即使我不接受第二个弹出窗口,它也可以正常工作,但如果我不接受第一个弹出窗口,它会将位置设置更改为“仅设备”模式(这意味着仅使用GPS提供商)。

    当弹出窗口显示时,我们不能期望所有的驱动程序都接受它。我想知道是否有任何方法,我可以做“默认接受”之类的事情,为第一次弹出,使我的设备保持在“高精度”模式。

    我找到了一个禁用位置同意的解决方案,当在位置设置中手动启用高精度模式时。该解决方案与我们的旧应用程序,但与更新的GooglePlayServices它不工作。

    任何实现这一点的方法——比如在设备外壳中执行命令、发出意图或修改GooglePlayServicesAPK本身,我都可以。

  • 共有1个答案

    楚修为
    2023-03-14

    在根设备上,您可以通过在初始化使用位置服务之前以编程方式设置以下值来抢占这些对话框。

    su的形式运行以下命令:

    content insert --uri content://com.google.settings/partner --bind name:s:network_location_opt_in --bind value:i:1
    content insert --uri content://com.google.settings/partner --bind name:s:use_location_for_services --bind value:i:1
    content insert --uri content://settings/global --bind name:s:assisted_gps_enabled --bind value:i:1
    content insert --uri content://settings/secure --bind name:s:allowed_geolocation_origins --bind value:s:'http://www.google.co.uk http://www.google.com'
    
     类似资料:
    • 我使用的是python 2.7、Selenium和PhantomJS。

    • 问题内容: 我通过window.open打开了一个弹出窗口。使用JavaScript打开,我想在关闭此弹出窗口时刷新父页面。(onclose事件?)我该怎么办? 问题答案: 您可以使用“ window.opener”访问父窗口,因此,在子窗口中编写如下内容:

    • 所以我只是想知道是否有人知道在JavaFX 8中关闭弹出窗口的正确方法。例如,如果我的弹出窗口上有一个取消按钮,当按下取消按钮时,我应该使用什么方法来摆脱弹出窗口?我目前只是使用隐藏()方法。这让我有点害怕,因为我不确定弹出窗口是否在后台某处徘徊并且仍然需要关闭。但是,当我在这里查看java文档时,我没有看到任何关闭()方法,我也没有在我的IDE自动完成中看到关闭()方法。不过,我确实在文档中看到

    • 我需要每1分钟和每5米位移更新一次熔合位置(我知道这是一个错误的做法,但为了测试和在日志中显示),并且我在按下按钮后立即启动服务,我在logcat中获得位置,但只有一次。根据服务级别,onLocationChanged应该每1分钟调用一次,但它不会再次调用,即使我的GPS几乎每分钟打开一次,然后在之后关闭,但Logcat中仍然没有位置更新。我需要服务类来保持更新位置,而不影响UI或主线程 这是只显

    • 我正在通过selenium web驱动程序进行自动化测试用例。我被困在一个地方,我总是得到第一个chrome的默认弹出窗口。我无法对该弹出窗口做任何操作,因为它没有在代码中检查,请检查所附的默认弹出窗口的屏幕截图。 请建议我处理这些事情。感谢任何帮助。

    • 问题内容: 基本上是弹出用于JComboBox中显示其衍生的JTextField下面,如何从怒吼取向为JcomboBox的弹出改变方向并在顶/显示JcomboBox的弹出超过该 编辑:基本JComboBox的代码示例 编辑第二。MacOX的代码 问题答案: 尝试在“ 组合框弹出”中找到的setPopupAbove()方法。