为什么我无法从Android Wear上的页面通知启动活动?

时间:2015-05-08 15:32:26

标签: android android-intent notifications wear-os

我只是在Wear设备上成功创建了一堆页面通知。

唯一的问题是PendingIntent似乎没有启动Activity (当然在Manifest中声明)。

这是我的代码:

List extras = new ArrayList();
Intent viewIntent = new Intent(getApplicationContext(), DetailActivity.class);
viewIntent.putExtra("KEY", "TEST123");
//Note: I also tried: Intent viewIntent = new Intent(getApplicationContext(), DetailActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent viewPendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, viewIntent, 0);

for (Route aRoute : myRoutes) {
    Notification aNotif = new NotificationCompat.Builder(getApplicationContext())
    .setContentTitle("BUS " + aRoute.route_short_name)
    .setContentText(aRoute.directions.get(0).trip_headsign)
    .setLargeIcon(bitmap)
    .setContentIntent(viewPendingIntent)
    .setSmallIcon(R.mipmap.ic_launcher).build();

    extras.add(aNotif);
}

NotificationCompat.Builder builder1 = new NotificationCompat.Builder(this)
    .setContentTitle(title)
    .setContentText(desc)
    .setContentIntent(viewPendingIntent)//Just in case
    .setSmallIcon(R.mipmap.ic_launcher);

Notification notification = builder1
    .extend(new NotificationCompat.WearableExtender()
    .addPages(extras))
    .setContentIntent(viewPendingIntent)//Just in case
    .build();

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
    notificationManager.notify(0, notification);

当我按下通知时,我希望意图开始,但没有任何反应......

欢迎提出任何建议。

编辑: 这个代码在通知之后就可以工作了,因此,第二个活动可以很容易地用bug启动:

 startActivity(viewIntent);

EDIT2: 现在有一个“打开”按钮,工作正常,但个别通知(每个页面)仍然没有任何结果

1 个答案:

答案 0 :(得分:1)

  1. 页面无法点击 - 在Android Wear上,只有可点击的操作。对于手机生成的通知,这些通知仅显示在所有页面之后
  2. 如果您对手机生成的通知有内容意图,那么该通知将始终显示为“在手机上打开”#39;行动。除非您删除了内容意图(在手机上无法通知通知),否则无法禁用此功能。
  3. 我说'手机生成'你也可以create a Wear app。通过使用data layer将消息推送到Wear应用程序,Wear应用程序可以构建custom notifications。这些通知允许您使用setDisplayIntent()并在线显示活动(作为主页面或单独的页面)。当然,这些活动可以包含您想要的任何视图,包括执行任何操作的操作(例如将消息发送回电话以启动特定活动)。

    请注意,由于默认情况下页面不可点击,因此自定义通知的样式设置应使项目可点击非常明显。您可以考虑使用setContentAction()来显示与布局其余部分内联的操作图标,而不是使用自定义通知活动 - 这会将操作作为单独元素移除,并将其直接放在通知/页面上