Sea*_*ean 29 notifications android
在我正在处理的Android应用中,我希望能够检测到新的状态栏通知何时出现,无论它是否是由我的应用引起的.更具体地说,我想计算给定时间范围内的通知数量.
这是否可能,如果是这样,怎么样?
For*_*rce 55
实际上,有可能,我在我的应用程序中使用它.
对于Android 4.2及更低版本:
您需要注册AccessibilityService并确保用户启用该服务.
服务示例:
public class InstantMessenger extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
//Do something, eg getting packagename
final String packagename = String.valueOf(event.getPackageName());
}
}
@Override
protected void onServiceConnected() {
if (isInit) {
return;
}
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
setServiceInfo(info);
isInit = true;
}
@Override
public void onInterrupt() {
isInit = false;
}
}
Run Code Online (Sandbox Code Playgroud)
对于Android 4.3及更高版本:
tho*_*ers 21
Android 4.3中的新Notification Listener API使您可以执行此操作.
有了这个,对可访问性黑客的需求就会减少.它还允许您解除通知.
| 归档时间: |
|
| 查看次数: |
30043 次 |
| 最近记录: |