我想用自己的坐标源替换android手机上的默认GPS位置提供程序。
是否有任何图层/ API /库/提供程序可以替换为我的信号提供程序而不是内置硬件GPS,或者从外部插件读取?它应该允许所有依赖GPS服务的应用程序接收我的信号而不是GPS。 理想情况下,替换应该仍然能够访问GPS信号(用于比较/校正或在两个提供者之间切换)。
我正在考虑实现我自己的LocationManager,并在系统中注册它(作为可选或默认),如果可能的话。但是在这个阶段,我仍在努力寻找可能和合适的东西。
感谢您的任何指示。
答案 0 :(得分:4)
此时不允许更换“默认”,唯一的解决方法是创建模拟提供程序。首先,您必须设置安全权限:
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
其次,设置代码以使用您将创建的模拟提供程序。有关如何在此处完成此操作的一些优秀信息:http://diffract.me/2009/11/android-location-provider-mock/
答案 1 :(得分:1)
我目前只是在阅读有关Android SDK的过程中。但我的理解是,您将提供GPS_PROVIDER意图的实现。
然后,任何应用程序都可以转向使用用户首选的GPS_PROVIDER意图。
请参阅: http://developer.android.com/guide/topics/intents/intents-filters.html
答案 2 :(得分:0)
我非常确定精准位置的默认位置提供程序已融入Android。
鉴于谷歌越来越意识到应用程序可能滥用和滥用系统资源,我认为这是一件好事。否则,人们可以使用值得信赖的声音“使用GPS卫星”设置诱骗用户认为他们在其他地方。
我可以看到您可以添加位置提供商的唯一方法是android.location.LocationManager.addTestProvider(......),这需要权限ACCESS_MOCK_LOCATION。现在,此方法和权限都记录为“测试”目的。我找不到一个明确说明该许可未被授予市场发布应用程序的来源,但我强烈怀疑是这样的。