「Winrtライブラリを使用して通知センターにアクセスする。(通知センターの通知を取得)」の版間の差分
ナビゲーションに移動
検索に移動
Sufee Admin (トーク | 投稿記録) |
Sufee Admin (トーク | 投稿記録) |
||
(同じ利用者による、間の1版が非表示) | |||
13行目: | 13行目: | ||
async def maind(): | async def maind(): | ||
if not(ApiInformation.is_type_present("Windows.UI.Notifications.Management.UserNotificationListener")): | if not(ApiInformation.is_type_present("Windows.UI.Notifications.Management.UserNotificationListener")): | ||
print(" | print("このデバイスではこの機能は使用できません") | ||
return | return | ||
listener = UserNotificationListener.get_current() | listener = UserNotificationListener.get_current() | ||
accessStatus = await listener.request_access_async() | accessStatus = await listener.request_access_async() | ||
if(accessStatus != UserNotificationListenerAccessStatus.ALLOWED): | if(accessStatus != UserNotificationListenerAccessStatus.ALLOWED): | ||
print(" | print("設定からアプリケーションによる通知を許可するをONにすること") | ||
notifications = await listener.get_notifications_async(NotificationKinds.TOAST) | notifications = await listener.get_notifications_async(NotificationKinds.TOAST) | ||
2022年11月15日 (火) 18:43時点における最新版
内容
通知取得
※設定からアプリケーションによる通知を許可するを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())