Windows 11: Notifications vanishes after few seconds.

SWinxy swinxythecat at gmail.com
Tue Jan 9 21:50:24 UTC 2024


Back in mid-2021 I submitted a feature request
<https://bugs.openjdk.org/browse/JDK-8266423> to add new APIs for toast
notifications on macOS and Windows *without* using SystemTray. It's
something I'd like to implement. Apple introduced its notification APIs
<https://developer.apple.com/documentation/foundation/nsusernotification?language=objc>
in
macOS 10.8. Never worked with the WinRT before, though.

SWinxy

On Mon, Jan 8, 2024 at 4:06 PM Davide Perini <perini.davide at dpsoftware.org>
wrote:

> Thanks for the explanation Aleksei
> but can you explain me what is the OpenJDK direction please?
>
> Suppose that you have a feature like this one, a simple notifications.
> Java worked well with Windows notifications until Win10,
> then Microsoft changed the APIs for notifications in Win11.
>
> Isn't OpenJDK supposed to adapt to the new Windows APIs?
>
> Does OpenJDK supports Windows 11 or not?
>
> It's a little "weird" to close an issue by saying that Java uses the same
> way to do the same thing since Windows 95
> and that it's a Microsoft problem if they changed the way to send
> notifications to the OS.
>
> Java should support Microsoft Windows, it isn't Microsoft Windows that
> should support Java,
> isn't it?
>
> Other languages adapted their APIs for the new notifications system, like
> everyone should expect from a modern language,
> after 2 years from the release of Win 11,
> Oracle says that it worked since Windows 95, so it is ok to have a broken
> API in JDK because it worked before, they are the ones who broke it
> (Microsoft).
>
> Does Java offers a correct way to send Notifications in Win10? Answer: Yes
> Does Java offers a correct way to send Notifications in Win11? Answer: No
> Does other languages offers a correct way to send Notifications in Win11?
> Answer: Yes
> Does current JDK APIs works as expected in Win11?
> Answer: No because JDK uses an old API born with Win95 (30 years ago + or
> -) with a new OS born in 2021, this results in an unexcpected behaviour
> that doesn't work as supposed initially by the API.
>
> In the bug report you wrote:
> "I can't see what Java can do to change the behaviour."
>
> The answer is:
> "By implementing the correct API for the correct OS".
>
>
> Java is currently not able to correctly send a Notification in Windows 11.
>
>
> I see a bug there, if you don't see it,
> I'm pretty worried of the new JDK direction.
>
> Thanks
> Davide
>
>
> Il 08/01/2024 20:55, Aleksei Ivanov ha scritto:
>
> On 2024-01-08 19:30, Davide Perini wrote:
>
> Thanks for the Answer Aleksei,
> I have a lot of Windows apps that uses notifications without problems.
>
> even a simple python program like this works correctly.
>
> from win11toast import toast
>
> toast('Hello', 'Click to run python script')
>
>
> Python could use newer WinRT APIs [6], in particular ToastNotification
> class [7] which provide richer interface for the toast notifications. The
> package name ‘toast’ hints it uses the newer APIs.
>
> is it possible that Microsoft changed the way how to create Notifications
> in Windows 11 and Java still uses the way it worked in Windows 7?
>
>
> Perhaps, Microsoft changed how they handle notifications in Windows 11. In
> Windows 10, the notifications created with a Java app remain in Action /
> Notification centre.
>
> Java uses Shell_NotifyIcon [8] function that has been available since
> Windows 95.
>
> --
> Regards,
> Alexey
>
> [6] https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/
> [7]
> https://learn.microsoft.com/en-us/uwp/api/windows.ui.notifications.toastnotification?view=winrt-22621
> [8]
> https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shell_notifyiconw
>
>
> Thanks
> Davide
>
>
>
> Il 08/01/2024 17:59, Aleksei Ivanov ha scritto:
>
> Hi Davide,
>
> The bug that you reported has been moved to JDK project in JBS, you can
> view it as JDK-8315647 [1]. You should've received a link to it.
>
> Is there a way to workaround this JDK bug?
> I opened a bug report months ago but no one answered.
>
>
> What kind of answer did you expect to receive?
>
> You already asked this question on this mailing list in August [2]. I
> replied to your question [3]. Nothing has changed since August. It is not a
> bug in Java because a native Win32 app behaves the same way.
>
> I compiled and tested the sample [4], it behaves in Windows 11 as Java
> does: the displayed balloon notification does not go to notification
> centre. However, if I open notification centre while the balloon is
> displayed, it remains there. If I disable "Show notification banners" and
> leave "Show notifications in notification centre" enabled, the balloon goes
> directly to notification centre without displaying a banner.
>
> You can compile and test the sample too:
>
> git clone --filter=blob:none --sparse
> https://github.com/microsoft/Windows-classic-samples.git
> <https://urldefense.com/v3/__https://github.com/microsoft/Windows-classic-samples.git__;!!ACWV5N9M2RV99hQ!NLmQsIei56bZm5IGVWA45k6g1Dduh_MFpShFK0TzjLM7OJHlH90je29IlZRa410GYcehUmNb21kyLplVv8fTzwWsci7s6yw2$>
> windows-samples
> cd windows-samples
> git sparse-checkout add
> Samples/Win7Samples/winui/shell/appshellintegration/NotificationIcon
>
> Navigate to the NotificationIcon folder and open NotificationIcon.sln in
> Visual Studio to compile and run it.
>
> If required, I can attach the compiled version of the application.
>
>
> I have closed JDK-8315647 as duplicate of JDK-8310352 [5].
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/client-libs-dev/attachments/20240109/062783c2/attachment-0001.htm>


More information about the client-libs-dev mailing list