代码之家  ›  专栏  ›  技术社区  ›  relet

替换Android设备上的默认GPS信号提供程序

  •  9
  • relet  · 技术社区  · 14 年前

    我想用我自己的坐标源替换android手机上默认的GPS定位提供商。

    是否有任何层/API/库/提供程序允许用我的信号提供程序代替内置的硬件GPS,或从外部插件读取?它应该允许所有依赖GPS服务的应用程序接收我的信号,而不是GPS。 理想情况下,替换者仍应能够访问GPS信号(用于比较/校正或在两个提供商之间切换)。

    例如,我正在考虑实现我自己的LocationManager,并在系统中注册它(可选或默认),如果可能的话。但在现阶段,我仍在努力找出什么是可能的和合适的。

    3 回复  |  直到 14 年前
        1
  •  0
  •   Rahul Sharma Rashid Kurbanov    6 年前

    我敢肯定,在Android系统中,提供精确定位的默认位置提供者是现成的。

    考虑到谷歌越来越意识到应用程序对系统资源的潜在误用和滥用,我认为这是一件好事。否则,人们就可以使用可靠的“使用GPS卫星”设置,诱骗用户认为自己在别处。

    我能看到你能添加位置提供者的唯一方法是通过 android.location.LocationManager.addTestProvider(......) ,需要访问\u MOCK \u位置的权限。现在,此方法和权限都被记录为用于“测试”目的。我找不到一个消息来源明确表示,该许可证是不允许市场发布的应用程序,但我强烈怀疑是这样的。

        2
  •  4
  •   Paul Gregoire    14 年前

    此时不允许替换“default”,唯一的解决方法是创建一个模拟提供程序。首先必须设置安全权限:

    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    

    其次,将代码设置为使用要创建的模拟提供程序。关于如何做到这一点,这里有一些极好的信息: http://diffract.me/2009/11/android-location-provider-mock/

        3
  •  1
  •   morechilli    14 年前

    然后,任何应用程序都可以转向使用用户首选的GPS\U提供商。

    http://developer.android.com/guide/topics/intents/intents-filters.html