ubuntu touch 上的“持久”通知

ubuntu touch 上的“持久”通知

在 ubuntu touch 上,可以通过“notify-send”发出“临时”通知。当我这样做时,它会显示 5 秒钟的通知。之后它就消失了,任何它曾经存在的痕迹都消失了。这与桌面(至少在 kde 中)上的行为不同,在桌面上将显示通知,并且您会在系统托盘中看到通知的小日志。

但是,可以这样做,因为收到的消息“持久性”。持久性是指它们位于顶部的通知区域,供用户查看。

从 shell 脚本创建此类通知的最佳方法是什么?我不介意创建二进制文件或脚本(即,相当于通知发送)来执行此操作。但理想情况下,我想使用通知发送。

我正在像这样使用通知发送:

notify-send "header" "body"

答案1

您不能依赖通知发送,因为它不是基础映像的一部分,也不是 SDK 支持的部分。

目前实现此目的的唯一方法是使用推送通知,这需要将通知发送到远程推送服务器,然后将通知分散到与关联 Ubuntu One 帐户连接的所有设备。

目前有几种类型的通知,并且推送是通过 SDK 支持的唯一方法。通知系统目前正在进行一些重新设计,未来版本将具有更好的集成系统,并且 SDK 中提供 API 供使用,并将整合当前的系统差异。

我不太清楚您到底想做什么,但手机和平板电脑图像中的应用程序生命周期和限制与您正在做的事情不一致。

答案2

您是否尝试过更改--expire-time=TIME通知的属性?我相信可以将其更改为更高的值,例如 10,000(以毫秒为单位)。
可以找到更多详细信息这里

答案3

要将通知推送到持久通知列表,您无需推送通知,但可以指示“指示消息”执行此操作,然后小信封指示器将变为绿色,并且您的通知也会出现在待处理通知中。您必须执行以下操作:

  • 创建一个具有“推送通知客户端”权限的应用程序。

  • 在该应用程序中,您将需要将您的消息与 DBus 消息一起发送到 com.ubuntul.Postal。

因为也许你只是想要一个 hack(就像我一样)。你可以这样做:

  • 从应用商店安装发布商 Canonical Group Limited 的 Twitter Web 应用程序。

  • 从终端或 ssh 会话运行:

gdbus 调用 --session --dest com.ubuntu.Postal \
--对象路径 /com/ubuntu/Postal/com_2eubuntu_2edeveloper_2ewebapps_2ewebapp_2dtwitter \
--方法 com.ubuntu.Postal.Post \
com.ubuntu.developer.webapps.webapp-twitter_webapp-twitter \
"\"{\\\"message\\\": \\\"foobar\\\", \\\"notification\\\":{\\\"card\\\": {\\\"summary\\\": \\\"一些标题\\\", \\\"body\\\": \\\"一些文本\\\", \\\"popup\\\": true, \\\"persist\\\": true}}}\""

在“indicator-messages”页面的测试中发现了此黑客行为这里

相关内容