android - 像 Google Inbox 一样获取用户的家庭、工作地点和加星标的位置

标签 android google-maps google-api google-now

当您在 Google 收件箱中暂停消息并选择“选择地点”时,它会显示一个列表,其中包含您的家庭和工作地址(来自 Google Now)以及您的 Google map 个人资料中的星标位置。 Keep 等其他 Google 应用也提供类似的功能。

我想在我的应用中实现此功能,但找不到公开该信息的正确 API。这是 Google 不会向第三方公开的东西吗(我想那里有滥用的空间)?

如果没有,如何实现?什么 API 有数据?

enter image description here

最佳答案

除非您特别设置,否则 Google 即时会利用您的位置数据分析(在登录到您的 Google 帐户设置中启用的 Google+ 位置服务的所有设备上)来确定您的家庭和工作地点。

我在 Google 官方文档中找到的任何地方都没有明确引用此数据的存储/检索,但 Google Now 中用于此数据的架构可在此处获得: Google Schema - Person

对于任何给定的人员实体,homeLocationworkLocation 属性与该数据一起存在。

另外(或除此之外),使用 Google 的 Plus 平台/Google 身份平台,如果您有一个经过身份验证的用户,您可以按照描述进行 API 调用 here (with examples) 获取当前用户的任何指定字段(包括 currentLocation、带有地址的组织(包括工作),如果用户提供的话)。

存在使用 oAuth 和原始谷歌地图提要 URL 来提取数据的先前 SO 问题,但接受的答案有些不清楚,当我点击链接并尝试通过身份验证对其进行测试时,我收到了来自所有人的 404 错误其中:Access locations in My Places of a particular account through Google Maps API

与 Google 产品论坛中的帖子一样 here 几年前,以前版本的 Google Maps Data API 允许访问 My Places,这正是您所需要的,但在 2013 年被弃用并被删除。

最后,我认为这是最好的方法,并且可能是 Google 使用的(如果它没有被声明为 Google Now),即 Google Contacts API。用户存在于他们自己的联系人列表中,Google 联系人的广泛 API 允许您获取/设置带有标准标签的地址,例如用户的家庭或工作。

这里都有详细说明:Google Contact Services - App Scripts

关于android - 像 Google Inbox 一样获取用户的家庭、工作地点和加星标的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32429292/

相关文章:

android - Apple 彩色表情符号字体如何工作,是否有 Android 版本?

android - Jfloat 到 Float

javascript - 无法使用 GMapPanel 加载 Google map - EXTJS 4

javascript - 使用 Javascript API 登录谷歌而不触发弹出窗口

javascript - Google Save To Drive API v3 停止工作

authentication - 刷新 token 是否与请求 token 相同?

android - 无效的资源目录名称 obj\Debug\res menu.png

java - Android/Java 如何捏合缩放/滚动整个 Activity ? (不是 ImageView )

android - 使用 UID 从 Firebase 检索位置并放入 Google map

angular - 如何将 Angular2 组件渲染为字符串?