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.注册监听服务
android:name=".DemoNotificationListener" android:label="Notification Listener" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
3.请求用户授权
引导用户前往 设置 > 应用和通知 > 特殊应用权限 > 通知访问权限,启用应用的监听权限。