我收听 WhatsApp 消息等通知。
但每次有通知进入时,NotificationListenerService 都会触发两次。
有谁知道这个问题吗??
这是 AndroidManifest.xml 中的一个片段:
<service android:name=".NotifyService"
android:label="WhatsNotify"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService"></action>
</intent-filter>
</service>
在NotificationListenerService类中:
public class NotifyService extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Log.i("NotifyService", "got notification");
}
}
Edit:
两者的属性StatusBarNotification
s:
第一个通知:
0|com.whatsapp|1|[email protected]|10073
第二次通知:
0|com.whatsapp|1|null|10073
我不知道为什么会发生这种情况。也许通知标志可能会触发它两次。
您可以尝试自己省略重复执行:
public class NotifyService extends NotificationListenerService {
private String mPreviousNotificationKey;
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
if(TextUtils.isEmpty(mPreviousNotification) || !TextUtils.isEmpty(mPreviousNotification) && !sbn.getKey().equals(mPreviousNotificationKey)){
Log.i("NotifyService", "got notification");
}
}
Each StatusBarNotification
具有生成的唯一密钥:
private String key() {
return user.getIdentifier() + "|" + pkg + "|" + id + "|" + tag + "|" + uid;
}
按住每个先前的键可以区分给定包的后一个通知。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)