Winrtライブラリを使用して通知センターにアクセスする。(通知センターの通知を取得)
内容
通知取得
※設定からアプリケーションによる通知を許可するをONにすること
コード
from winrt.windows.ui.notifications.management import UserNotificationListener, UserNotificationListenerAccessStatus
from winrt.windows.ui.notifications import NotificationKinds, KnownNotificationBindings
from winrt.windows.foundation.metadata import ApiInformation
import asyncio
async def maind():
if not(ApiInformation.is_type_present("Windows.UI.Notifications.Management.UserNotificationListener")):
print("このデバイスではこの機能は使用できません")
return
listener = UserNotificationListener.get_current()
accessStatus = await listener.request_access_async()
if(accessStatus != UserNotificationListenerAccessStatus.ALLOWED):
print("設定からアプリケーションによる通知を許可するをONにすること")
notifications = await listener.get_notifications_async(NotificationKinds.TOAST)
for i in notifications:
text_sequence = i.notification.visual.get_binding(
KnownNotificationBindings.get_toast_generic()
).get_text_elements()
it = iter(text_sequence)
print(f"Notification title({i.id}): ", it.current.text)
while True:
next(it, None)
if it.has_current:
print(it.current.text)
else:
break
loop = asyncio.get_event_loop()
loop.run_until_complete(maind())