首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Waze或Google Maps for mobile中检测导航结束

在Waze或Google Maps for mobile中检测导航结束
EN

Stack Overflow用户
提问于 2014-07-01 21:11:00
回答 4查看 2.2K关注 0票数 17

我希望我的移动应用程序是由Waze或Google地图应用程序中的“导航结束”触发的。在最简单的形式中,我希望我的应用程序在用户从导航应用程序收到“您已到达目的地”的通知时执行某些操作。

我意识到,至少在Android中,我可以通过创建一个意图来开始导航(在Waze或Google Maps应用程序中)。然后,我可以在我的应用程序中运行自己的接近传感器来等待用户的到来。然而,我想要更干净的东西--用户所需要的就是让我的应用程序在后台工作,然后让这个应用程序能够直接响应到达事件。

无论是iOS还是Android的解决方案都非常受欢迎。Hacky的解决方案也非常受欢迎。

谢谢

EN

回答 4

Stack Overflow用户

发布于 2015-07-21 14:30:42

一个简单的解决方案是在开始导航之前创建一个GeoFence。您可以使用在后台运行的intent服务监听Geofence.GEOFENCE_TRANSITION_ENTER事件。当此事件发生时,您可以从服务类中执行您需要执行的任何任务。同样的原理也可以在ios中实现:这里有一个在ios http://www.raywenderlich.com/95014/geofencing-ios-swift和android http://paulusworld.com/technical/android-geofences中实现Geofence的教程

票数 3
EN

Stack Overflow用户

发布于 2015-07-22 04:31:55

你可以做的一个非常棘手的事情(几乎不想发布这篇文章)是使用NotificationListenerService,并密切关注来自谷歌地图或waze的通知。

http://developer.android.com/reference/android/service/notification/NotificationListenerService.html#nestedclasses

我认为只要你有权限,就应该让公众使用。

你必须为语言想出一些聪明的东西,也许是阅读谷歌地图/ waze应用程序中的资源,以确保你不会错过非英语的通知。

这对iOS来说可能也是可行的:https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/AppleNotificationCenterServiceSpecification/Specification/Specification.html我没有使用iOS的watch Apis的个人经验,所以你必须自己去挖掘一下。

票数 3
EN

Stack Overflow用户

发布于 2015-07-24 03:37:38

这里唯一可能的解决方案是每X秒轮询一次活动活动(前台活动),然后从那里开始操作。您可以使用服务和警报来完成此操作。

您可以通过以下方式来实现:

检查当前正在运行的进程:

代码语言:javascript
复制
 ActivityManager manager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
    for (RunningAppProcessInfo process : processes) {
       if (processName.equals(process.processName)) {
           // do your thing
       }
    }

或者(不太好)检查当前的前台应用程序:

代码语言:javascript
复制
ActivityManager am = (ActivityManager) context
                .getSystemService(Activity.ACTIVITY_SERVICE);
        String packageName = am.getRunningTasks(1).get(0).topActivity
                .getPackageName();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24511169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档