我有一个活动,用于开始在Google Maps应用中导航。 当目的地快到时,我想收到一条通知,通知该请求将打开我的应用程序。 我应该使用待定的意图。没关系。我真的不理解如何在到达目的地时如何管理通知?
我应该使用某种服务来跟踪当前位置并发送待处理的意图吗?导航可能会持续几个小时,Android Oreo会终止服务
答案 0 :(得分:0)
我认为您应该在启动导航时启动服务,并在2-3秒后到达目的地进行检查。如果是,则使用此代码从服务器端或您端发出自我通知。
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this);
//Create the intent that’ll fire when the user taps the notification//
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.androidauthority.com/"));
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
mBuilder.setContentIntent(pendingIntent);
mBuilder.setSmallIcon(R.drawable.notification_icon);
mBuilder.setContentTitle("My notification");
mBuilder.setContentText("Hello World!");
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(001, mBuilder.build());
使用此功能可以发送通知。 这可以帮助我使用它。
答案 1 :(得分:0)
您可以启动服务并使用PRIORITY_NO_POWER来被动跟踪位置(该位置将由Google地图更新),并且当位置足够接近可定位时-显示您的通知。
答案 2 :(得分:0)
最好的方法是GeoFences API。 当您的应用程序中的另一个应用程序(例如Google Maps检索新位置)时,地理客户端将等待位置到达目的地时收到通知。在这种情况下,您的应用可以触发通知,无论是在后台还是完全关闭