在 Java 中使用 10.8 通知中心

这只是一个一般性的问题。我没有一个实际的项目或我想这样做的其他东西。是否可以用Java构建一个应用程序并添加一些框架内容或其他东西并使用Notication Center?


答案 1

我写了一个简单的 -> shim .dylib,它导出了一个立即传递通知的函数。CObjective-CshowNotification

然后,我为 dylib 中导出的函数编写了一个 JNA 包装器。我相信你可以使用洛可可和JNAerator的组合来完全消除这种dylib。

然后我写了一个简单的java应用程序,我把它变成了一个应用程序包。这一点很重要。如果您的 java 应用程序不在应用程序包中,则不会传递通知。

传递到通知中心的邮件。

Screenshot of delivered notification

这是非常可行的,你只需要遵守规则 - 它必须在应用程序包中NSUserNotificationCenter

我为此使用了java 7,更新9。另一个问题似乎取得了更大的成功

用于构建此简单应用程序的代码可在 github 上找到。它包含一个用于创建 的 xcode 项目和一个利用 来传递通知的 netbeans 项目。.dylib.dylib


答案 2

我找到了一个可能适合您的解决方案,您可以使用它在osx上显示通知,请尝试以下操作:Apple script

Runtime.getRuntime().exec(new String[] { "osascript", "-e", "display notification "This is a message" with title "Title" subtitle "Subtitle" sound name "Funk"" });

您可以在此处阅读 有关 的通知Apple script