Подтвердить что ты не робот

Использование 10.8 Центра уведомлений в Java

Это всего лишь общий вопрос. У меня нет реального проекта или чего-то еще, где я хочу это сделать. Возможно ли создать приложение на Java и добавить некоторые фреймворки или что-то еще и использовать Notication Center?

4b9b3361

Ответ 1

Я написал простой CObjective-C shim.dylib, который экспортировал функцию showNotification, которая немедленно отправила уведомление.

Затем я написал JNA оболочку для функции, экспортированной в dylib. Я уверен, что вы могли бы использовать комбинацию Rococoa и JNAerator, чтобы полностью устранить этот dylib.

Затем я написал простое java-приложение, которое я превратил в пакет приложений. Это важный момент. Если ваше приложение Java не входит в комплект приложения, уведомления не будут доставлены.

Сообщения, отправленные в центр уведомлений.

Screenshot of delivered notification

Это в высшей степени выполнимо, вам просто нужно играть вместе с правилами NSUserNotificationCenter - , это должно быть в комплекте приложений.

Я использовал java 7, для этого обновил 9. Другой вопрос, похоже, имел еще больший успех.

Код, используемый для создания этого простого приложения, доступен в github. Он содержит проект xcode для создания .dylib и проект netbeans, который использует .dylib для доставки уведомлений.

Ответ 2

Я нашел решение, которое может сработать для вас, вы можете использовать Apple script для отображения уведомлений по osx, попробуйте следующее:

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

Вы можете прочитать о Apple script уведомлениях в здесь

Ответ 3

Одним из возможных решений будет Growl, когда приложение будет обновлено до Growl 2.0, которое будет перенаправлять уведомления Growl в Центр уведомлений.

Информация о Growl 2

Сообщения Growl могут быть перенаправлены текущими версиями с помощью MoutainGrowl

Growl может использоваться под Java с libgrowl или jgntp

Возможно, это не самое чистое решение, и у него есть некоторые требования к пользователю, но это определенно тот, который работает

Ответ 4

Я предлагаю вам взглянуть на то, как IntelliJ IDEA обрабатывает уведомления в MountainLionNotifications и GrowlNotifications.

Как было предложено в других ответах, он использует JNA для управления NSObjects.