26

我正在开发一个应用程序,为用户提供“信息”项目的快速列​​表,但我想设置一个选项,以便他在离开家或工作时收到这些项目作为通知。

我注意到(现在在我的设备上使用谷歌)他们可以告诉用户居住和工作的地方,以便他们可以在您离开或到达其中一个地方时向您推送通知(一种如果这样然后那样)。

有什么方法可以获取 Google Now(它们来自谷歌地图)用于此的坐标(纬度和经度)?我的意思是(GoogleMapsApi > GetFavorite Locations > Get Home Location > Get coordinates > use them in my app)。

如果有,您能否指出一个示例、教程或执行此操作的代码。

提前致谢。

4

6 回答 6

5

您可以使用一个名为Neura的免费 sdk ,它有一个学习阶段,用于检测您的重要场所,例如家庭、工作场所、健身房、杂货店、餐馆等。

另外,还有一个很大的好处 - 当您的用户到达/离开您预先定义的特定位置时,它可以通知您的应用程序。

这完全符合您的需求,对于这个例子,让我们谈谈 home :

  1. 寻找你的家:
    • Neura sdk会在几天内检测到您的家,因为系统需要了解您的习惯和行踪。所以,当你在一个地方睡了几天,也在那里闲逛时,与一个地方的设备互动 -> 有一个明确的迹象表明这个地方就是你的家。
    • 如果你不想等几天,你也可以向你的用户显示一个对话框,告诉他设置他的家,我不得不承认,这不是很聪明,但是有了这个 sdk,你可以向你的用户展示一个挑选者要求他选择他的家
  2. 例如,您可以要求Neura 通知您的用户(通过Google Cloud Messaging)当他到家时。
  3. 当您收到“userArrivedHome”推送时显示您的信息列表。

您可以在 git 上查看这个项目,完全按照我的描述进行操作:

  1. 查找您的用户家庭住址
  2. 当用户到达/离开工作时,分别将电话静音/取消静音。
  3. 当用户到达/离开家时接收事件。

随意接受这些项目并随心所欲地做。

为了找到您的用户家庭地址项目,以下是应用程序的结果: home_detection

于 2016-09-04T14:47:16.187 回答
1

您可以检测 Wifi 并将它们分配到一个地方(家庭/工作)

(我从未尝试过这样的事情,但这可能会有所帮助: http: //developer.android.com/reference/android/net/wifi/WifiManager.html#startScan(), http: //developer.android.com/reference /android/net/wifi/WifiManager.html#getScanResults() )

于 2015-05-12T20:08:26.997 回答
1

我认为您无法从 Google API 获取信息。正如@surender8388 在评论中提到的那样,唯一的方法是使用位置和时间。

如果您不想使用 GPS,ACCESS_COARSE_LOCATION 是一个不错的选择。

于 2015-05-13T15:44:55.720 回答
0

好吧,Google Now 和 Waze 一样使用复杂的算法。您还会注意到,Google Now 会在一段时间后询问您某个位置是否重要。它查看用户经常花费大量时间的地方。其中一个肯定会在家,另一个肯定会在工作。只需在 4.2 中询问便宜的位置,然后查看用户趋势。

于 2013-08-13T09:43:21.227 回答
0

谷歌即时的原因是节省您访问一个地方的时间和次数,同时使用同一地点和无线网络。从这些数据中,当他们达到一定的确定性时,询问用户是否要将其分配为家庭/工作。

于 2015-06-04T12:52:15.677 回答
-1

您可以尝试使用新的 API 来获取位置(fused-provider),并且可以使用地理围栏。

Google IO (fused-provider)

官方文档地理围栏

于 2015-06-04T13:51:45.437 回答