我正在尝试为其network_provider
实现找到android源代码。到目前为止,我追溯到com.android.server.location.LocationProviderProxy
并发现它从位置提供程序包名称列表中加载包。包名应该在
com.android.internal.R.array.config_locationProviderPackageNames
com.android.internal.R.array
,我在the Android Javadoc website.
这些包及其源代码在哪里?
答案 0 :(得分:6)
包名称在/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 here或googlesource here上找到它。
如果您正在寻找网络位置提供商,那么它的源代码似乎已不再可用。从Google安卓团队中引用message by Mike Lockwood:
网络位置提供程序曾经是开源的,但是 已被删除。我们这样做是因为我们想要核心android 框架独立于任何Google的服务。我们也是 担心有人可能会发运使用网络位置的手机 没有告知用户它的存在。既然如此 将用户的位置传达给我们的服务器,我们希望确保这一点 它是严格的选择加入服务,用户了解我们的 隐私准则。所以现在我们只提供NetworkLocation.apk 以二进制形式发送给同意遵守我们的指导原则的合作伙伴 它被使用了。
至于找到网络位置提供商的旧版本,我建议谷歌搜索NetworkLocationProvider.java
。我没有看到任何看起来特别权威的内容,但第一个结果来自netmite.com。
如果您对与Google位置服务后端通信的代码特别感兴趣,您应该查看LocationMasfClient
课程,您可以看到here。