是否可以在Android Wear上以编程方式运行导航?

时间:2014-12-22 14:30:18

标签: android navigation android-wear-notification

我正在为我的Android应用程序进行扩展。我可以获得android的通知,而不会出现我想要的所有数据的问题。我发送通知的每个POI都有lat和long,我想添加一个功能"导航到"在android内部通知,这将采取这个坐标并在智能手表上运行谷歌导航。 这可能吗?你能提供一些例子或文件吗? 感谢

这是我在我的应用中使用的示例代码,用于在手机上运行谷歌地图,点击"在地图上打开"我的机器人穿上的按钮。

    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)

1 个答案:

答案 0 :(得分: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类方法的一部分。当手机屏幕解锁并且屏幕打开时,一切正常。但是,导航也应该在手机锁定时启动。这是我目前正在努力的地方。