【问题标题】:Disable android wear pending intent action confirmation禁用 android wear 挂起的意图操作确认
【发布时间】:2015-01-03 10:53:03
【问题描述】:

我目前正在开发一款带有通知的应用,该应用会显示在可穿戴设备上。通知包含绑定到通知卡上的操作 (.setContentAction(0))。

一切正常,只是每次有人点击卡片时都会显示一条确认消息。

由于卡片会在有人点击后立即更新,因此无需显示确认信息。

我已经查看了官方文档(https://developer.android.com/training/wearables/ui/confirm.html#show-confirmation),如果有办法停止确认,很遗憾我到目前为止没有找到解决方案。

编辑 09.07.2015

NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                                    .setGroup("GROUP")
                                    .setGroupSummary(false)
                                    .setAutoCancel(false)
                                    .setPriority(Notification.PRIORITY_HIGH)
                                    .setSmallIcon(R.drawable.ic_timer_white_48dp);

ArrayList<NotificationCompat.Action> actions = new ArrayList<>();
NotificationCompat.Action control = new NotificationCompat.Action.Builder(icon, null, pendingTimeIntent).build();

actions.add(control);

builder.extend(new NotificationCompat.WearableExtender().addActions(actions).setContentAction(0).setBackground(background));

NotificationManagerCompat notificationManager =
            NotificationManagerCompat.from(context);
notificationManager.notify(Constants.NOTIFICATION_ID_WEAR, builder.build());

【问题讨论】:

  • 你有解决办法吗?
  • 不,这就是我开始赏金的原因。
  • 您有独立的可穿戴应用程序吗?我最近在开发一个 SmartWatch 应用程序,我没有遇到这个问题。可以发一些代码吗?
  • 这只是一个通知,而不是一个完整的智能手表应用程序。我知道可以使用智能手表应用程序来做到这一点,但它对我的用例来说太过分了。
  • 你能发布你是如何填充通知对象的吗?

标签: android android-notifications wear-os


【解决方案1】:

你可以尝试修改你的构造函数:

NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                                    .setGroup("GROUP")
                                    .setGroupSummary(false)
                                    .setAutoCancel(false)
                                    .setPriority(Notification.PRIORITY_HIGH)
                                    .setShowWhen(true)                                                                                   
.setSmallIcon(R.drawable.ic_timer_white_48dp);

注意这一行:

.setShowWhen(true);

并且可以将Intent的flag修改为false:

Intent intent = new Intent(this, ConfirmationActivity.class);
intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE,
                ConfirmationActivity.SUCCESS_ANIMATION);
intent.putExtra(ConfirmationActivity.EXTRA_MESSAGE,
                getString(R.string.msg_sent));
intent.putExtra(ConfirmationActivity.EXTRA_SHOW_WHEN, false);
startActivity(intent);

我不知道它是否正常工作,但我希望它能给你一个线索。

【讨论】:

  • 这是行不通的,因为 NotificationCompat.WearableExtender().addActions(actions) 只执行 NotificationCompat.Action 类型的操作,它只适用于挂起的意图。无法为待处理的 Intent 添加额外内容。
  • 这不起作用,因为 wearextender 通知操作未决意图集不是确认活动意图,因为此通知是从手机应用触发的,而不是从穿戴应用触发
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
相关资源
最近更新 更多