簡體   English   中英

android,如何監聽通知權限變更事件

[英]android, how to listen to the notification permission change event

在 android 應用程序可以通過以下方式打開通知權限

Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
        .putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
startActivity(intent);

並將其打開或關閉。 在此處輸入圖像描述

如何收聽這里發生的權限更改? 會播出嗎?

編輯:> 28 似乎有廣播,但在此之前尚未找到 api 的解決方案。 https://developer.android.com/reference/android/app/NotificationManager#ACTION_APP_BLOCK_STATE_CHANGED

ACTION_APP_BLOCK_STATE_CHANGED
Added in API level 28

public static final String ACTION_APP_BLOCK_STATE_CHANGED
Intent that is broadcast when an application is blocked or unblocked. This broadcast is only sent to the app whose block state has changed. 

我不相信有可能得到通知,但如果我錯了,我希望得到更正。 也就是說,用戶也可以隨時更改此設置,而不僅僅是在您觸發 Intent 時。 雖然 areNotificationsEnabled() 在這里會有所幫助,但不幸的是,您可能還需要涵蓋較新 API 中的通知通道以及通知通道組的情況。

我認為這是不可能的。 如果用戶授予該應用程序的權限,您發現的唯一方法是再次調用checkSelfPermission()

如果用戶撤銷了先前授予的權限,您的進程將終止,您將在下次運行應用程序時調用 checkSelfPermission() 來了解權限更改。 所以我認為每次你啟動你的應用程序時,調用 checkSelfPermission() 來找出是否有任何變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM