android 9.0 收到通知消息亮屏
16lz
2021-01-23
1.接收到短信亮屏
- 源码位置 :/vendor/mediatek/proprietary/packages/apps/Mms/src/com/android/mms/transaction/MessagingNotification.java
private static void updateNotification(...//sOpMessagingNotification.onUpdateNotification(isNew);wakeUpScreen(context);}/** * M: Wake up screen * @param context */ private static void wakeUpScreen(Context context) { ... // 去掉在插入耳机的状况下才会唤醒判断 // if (hasInsertedHeadSet || headsetIsOn) { }
2.收到任何消息都亮屏
- 源码位置:vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/NotificationEntryManager.java
// add Wake up screenprivate PowerManager.WakeLock wakeLock;private void wakeUpScreen() { if (wakeLock== null){ wakeLock= mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, TAG); wakeLock.setReferenceCounted(false); } if (!mPowerManager.isScreenOn()) { wakeLock.acquire(3000); Log.d(TAG, "notification turn screen on"); } }}//end在addNotificationViews和updateNotificationInternal里面添加如下亮屏请求,当来了一条新通知或者更新一条通知的时候都会走到这两个逻辑protected void addNotificationViews(NotificationData.Entry entry){ if (entry == null) { return; } // Add the expanded view and icon. mNotificationData.add(entry); tagForeground(entry.notification); updateNotifications(); + wakeUpScreen();}private void updateNotificationInternal(StatusBarNotification notification, NotificationListenerService.RankingMap ranking) throws InflationException { ... updateHeadsUp(key, entry, shouldPeek, alertAgain); updateNotifications(); + wakeUpScreen(); // add }
更多相关文章
- Android地图获取位置
- Ubuntu12.04下的Android 源码编译
- Android 属性动画(Property Animation) 完全解析【附源码】
- 获取android手机内部存储空间和外部存储空间的参数 && 如何决定
- [Android]Android系统启动流程源码分析
- [Android]瀑布流实例android_waterfall源码分析
- Android中Activity启动过程源码阅读笔记:
- android常驻通知栏点击事件