A bit late to the party, but now that Google's Awareness API has deprecated Places, you can use the NumberEight SDK as an alternative. One bonus is that it works on iOS too.
It performs a wide variety of context recognition tasks including:
- Real-time physical activity detection
- Current place categories (including Work and Home, which can trigger even without GPS)
- Motion detection
- Reachability
- Local weather
It can also record user context for reports and analysis via the online portal.
To quickly check when a user is at home in Kotlin, you would write:
val ne = NumberEight()
ne.onPlaceUpdated { glimpse ->
val place = glimpse.mostProbable
if (place.context.home == Knowledge.AtPlaceContext) {
Log.d("MyApp", "User is at home!")
}
}
Here are some iOS and Android example projects.
Disclosure: I'm one of the developers.