【问题标题】:Is it possible to programmatically run navigation on Android Wear?是否可以在 Android Wear 上以编程方式运行导航?
【发布时间】:2015-01-05 21:22:19
【问题描述】:

我正在为我的 android 应用程序进行扩展。我可以收到 android wear 的通知,而我想要的所有数据都没有问题。对于我发送通知的每个 POI,我都有 lat 和 long,我想在 android wear 通知中添加一个“导航到”功能,它将采用这个坐标并在智能手表上运行谷歌导航。 这可能吗?你能提供一些例子或文档吗? 谢谢

这是我在我的应用程序中使用的示例代码,用于通过单击我的 Android Wear 上的“在地图上打开”按钮在手机上运行谷歌地图。

    Intent mapIntent = new Intent(Intent.ACTION_VIEW);
    Uri geoUri = Uri.parse("geo:0,0?q=" + chapter.getLatitude() + "," + chapter.getLongitude());
    mapIntent.setData(geoUri);
    PendingIntent mapPendingIntent =
            PendingIntent.getActivity(context, 0, mapIntent, 0);
    ...

    .addAction(R.drawable.ic_map_white_24dp, "Open on map", mapPendingIntent)

【问题讨论】:

标签: android navigation android-wear-notification


【解决方案1】:

据我了解,您正在尝试做什么,您已经达到了目标。一旦您能够在手机上开始导航,它将自动显示在您的手表上,作为通知卡出现在您的表盘底部。

我目前正在开发一个应用程序,我正在做同样的事情,除了我使用 CardFragments 来触发操作,而不是使用可穿戴通知和 PendingIntents。当我按下手表上显示的 CardFragment 的操作按钮时,我正在向我的手机应用程序发送一条可穿戴消息,该应用程序在收到此特定消息时运行以下代码。

String uri = "google.navigation:q=" + String.valueOf(latitude) + "," + String.valueOf(longitude);
Intent mapsIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
mapsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mapsIntent);

我必须设置 FLAG_ACTIVITY_NEW_TASK 因为代码是普通 java 类方法的一部分。当手机屏幕解锁并打开屏幕时,一切正常。但是,导航也应该在手机锁定时开始。这是我目前正在努力解决的问题。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-08-09
  • 2012-12-31
  • 2013-06-29
  • 2017-08-25
  • 1970-01-01
  • 2023-02-20
  • 2020-10-15
相关资源
最近更新 更多