Android定位服务包的源代码

4

我正在寻找安卓源代码中的network_provider实现。到目前为止,我已经追踪到了com.android.server.location.LocationProviderProxy,并发现它从一系列位置提供程序包名称列表中加载包。包名应该在com.android.internal.R.array.config_locationProviderPackageNames中,但我在Android Javadoc网站上的com.android.internal.R.array中找不到。

这些包及其源代码在哪里?

1个回答

8
包名在/frameworks/base/core/res/res/values/config.xml中定义:
<string-array name="config_locationProviderPackageNames" translatable="false">
    <!-- The standard AOSP fused location provider -->
    <item>com.android.location.fused</item>
</string-array>

如果您正在寻找融合位置提供程序的源代码,您可以在grepcode 此处或googlesource 此处上找到它。

如果您正在寻找网络位置提供程序,则似乎该源代码不再可用。引用谷歌Android团队成员Mike Lockwood的一条消息

网络位置提供程序曾经是开源的,但现在已被移除。我们这样做是因为我们希望核心安卓框架独立于任何谷歌服务。我们还担心有人可能会出售一款使用网络位置但未告知用户的手机。由于它会将用户的位置信息发送到我们的服务器,因此我们希望确保它严格是一项选择加入的服务,并且用户了解我们的隐私指南。因此,现在我们只向同意遵守使用准则的合作伙伴提供NetworkLocation.apk的二进制形式。
至于查找旧版本的网络位置提供程序,我建议使用Google搜索“NetworkLocationProvider.java”。我没有看到任何特别权威的内容,但第一个结果来自netmite.com

如果您特别关注与Google位置服务后端通信的代码,那么您应该查看LocationMasfClient类,您可以在此处看到。


那很有帮助。我仍然无法找到实际与 Google 位置服务器通信并处理返回数据以获取位置修复的代码。你能指个方向吗? - windchime
我认为你要找的是网络位置提供程序,它不是开源的。我已经更新了答案并提供了更多细节。 - James Holderness
非常有帮助。"它曾经是开源的"。我该如何找到它的"旧"开源版本? - windchime
更新答案,附加了更多的链接。 - James Holderness

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接