1.创建通知监听服务
public class DemoNotificationListener extends NotificationListenerService { @Override public void onNotificationPosted(StatusBarNotification sbn) { String packageName = sbn.getPackageName(); if (packageName.equals("com.tencent.mobileqq") || packageName.equals("com.tencent.mm")) { Notification notification = sbn.getNotification(); if ((notification.flags & Notification.FLAG_ONGOING_EVENT) != 0) { // 判断通知内容是否包含通话关键词(如“通话中”) String text = notification.extras.getString(Notification.EXTRA_TEXT); if (text != null && (text.contains("通话中") || text.contains("视频通话"))) { // 更新状态为正在通话 } } } } @Override public void onNotificationRemoved(StatusBarNotification sbn) { // 通知被移除时更新状态 } }
2.注册监听服务
<service android:name=".DemoNotificationListener" android:label="Notification Listener" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"> <intent-filter> <action android:name="android.service.notification.NotificationListenerService" /> </intent-filter> </service>
3.请求用户授权
引导用户前往 设置 > 应用和通知 > 特殊应用权限 > 通知访问权限,启用应用的监听权限。