Android:以编程方式访问保存的谷歌位置

Posted

技术标签:

【中文标题】Android:以编程方式访问保存的谷歌位置【英文标题】:Android: access saved google locations programmatically 【发布时间】:2016-09-06 12:40:59 【问题描述】:

谷歌地图允许保存最喜欢的位置以便以后访问......请参阅here。

在需要输入位置的 android 中,如果有一个 API 可以让用户从他们已经保存的最喜欢的位置中进行选择,那就太好了,例如通过选择器对话框或类似的东西。

我找不到这样的 API... 有吗?我找到的最接近的是this 和this,但它们似乎不允许从您存储的位置进行选择。

【问题讨论】:

基于这个thread,没有API可以做你想要实现的。所以到目前为止我不知道这是否可能,但请尝试检查此SO question,它甚至可能对您有所帮助。 Address API 之类的东西怎么样:***.com/a/33057472/4070848 -- 据我所知,用户可以从他们现有的地址中进行选择(不确定来自哪里,也许是联系人?)。我花了几个小时试图让它工作,但不能。在Address.requestUserAddress() 之后,它只是直接向onActivityResult() 返回一个错误代码,并且没有选择器,也没有实际结果。 【参考方案1】:

确实没有办法做到这一点,但您可以创建自己的方法来做到这一点。你可以有一个带有星号的ImageButton(或任何象征“拯救”的东西)。使用SharedPreferences保存用户输入的经纬度,然后每次加载应用程序时,可以查看SharedPreferences中是否有一些值。如果有,您可以使用ListView 显示所有已保存的位置,然后单击其中一个时,使用Location 返回父活动。最后,使用Location 正确定位地图。

【讨论】:

是的,虽然我希望有一个现成的解决方案(谷歌已经这样做了,没有必要重新发明***)。但如果没有,看来我得自己动手了。 好的,酷!很高兴您找到了解决方案!所以我的解决方案不起作用:( 这并不是说它不起作用,只是我真的在寻求一种访问用户(或者更确切地说,允许用户访问他们)存储的谷歌位置的方法,而不是实施我自己的定制解决方案,却发现谷歌已经做到了:-) @drmrbrewer 对此有何更新?有没有办法在我们的应用程序中跟踪类似于谷歌的位置历史?请指导。提前致谢【参考方案2】:

Google/Android 不提供任何公共 API 来访问用户的已加星标/常用位置,并且这些数据仅在 Google 应用程序之间共享。

正如answer 所示,可能可以通过 Google Plus 和 Google 身份平台 API 获取位置数据

另外(或除此之外),使用 Google 的 Plus 平台 / Google Identity Platform,如果您有经过身份验证的用户,您可以 按照此处所述(带有示例)进行 API 调用以获取任何 当前用户的指定字段(包括 currentLocation、 如果用户提供了地址的组织(包括工作) 他们)。

看看this链接。

【讨论】:

以上是关于Android:以编程方式访问保存的谷歌位置的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式在谷歌地图颤动上选择一个标记

在android的谷歌地图中绘制json数据

如何在android的谷歌地图上用标记显示我的当前位置

颤动的谷歌地图没有出现

如何在android的谷歌地图V2上添加谷歌素材图标“我的位置”?

如何在android中以编程方式启用位置访问?