3

我正在为我的 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)
4

1 回答 1

1

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

我目前正在开发一个应用程序,我正在做同样的事情,除了我使用 CardFragments 来触发操作而不是使用 Wea​​rable Notifications 和 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 类的方法的一部分。当手机屏幕解锁并打开屏幕时,一切正常。但是,导航也应该在手机锁定时开始。这是我目前正在努力解决的问题。

于 2015-01-05T13:22:19.200 回答