1.概述
在12.0的產(chǎn)品開(kāi)發(fā)中最近公司項(xiàng)目要求 屏蔽系統(tǒng)所有通知 不需要在下拉狀態(tài)欄顯示通知功能實(shí)現(xiàn)
要控制系統(tǒng)通知的開(kāi)關(guān)功能,需要屏蔽系統(tǒng)通知,而系統(tǒng)通知都是由NoticationManagerServices.java來(lái)管理的,
這個(gè)NMS服務(wù)管理通知就需要在NotificationManagerService.java 來(lái)實(shí)現(xiàn)需求文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-460917.html
2.屏蔽系統(tǒng)所有通知的核心代碼分析
frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.java
3.屏蔽系統(tǒng)所有通知的核心代碼功能分析和實(shí)現(xiàn)
在系統(tǒng)中,處理通知主要都是NotificationManagerService.java,接下來(lái)分析下NMS源碼:
NMS服務(wù)也是在systemserver進(jìn)程中啟動(dòng)的,然后在onStart()中初始化關(guān)于通知管理類(lèi)的相關(guān)功能,所以先來(lái)看onStart的相關(guān)方法文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-460917.html
@Override
public void onStart() {
SnoozeHelper snoozeHelper = new SnoozeHelper(getContext(), new SnoozeHelper.Callback() {
@Override
public void repost(int userId, NotificationRecord r) {
try {
if (DBG) {
Slog.d(TAG, "Reposting " + r.getKey());
}
enqueueNotificationInternal(r.sbn.getPackageName(), r.sbn.getOpPkg(),
r.sbn.getUid(), r.sbn.getInitialPid(), r.sbn.getTag(), r.sbn.getId(),
r.sbn.getNo
到了這里,關(guān)于android 12.0 屏蔽系統(tǒng)所有通知的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!