这个问题已经在这里有一个答案:
- 检测到新的Android通知 2个回答
我想读/接入/登录其他应用程序的通知栏上解雇通知。
我搜索Intents
和PendingIntents
很多,但不能得到解决。
难道我的应用程序需要在任何通知解雇通知?
或者根本Android系统提供的东西由用户级应用程序来读取通知?
这个问题已经在这里有一个答案:
我想读/接入/登录其他应用程序的通知栏上解雇通知。
我搜索Intents
和PendingIntents
很多,但不能得到解决。
难道我的应用程序需要在任何通知解雇通知?
或者根本Android系统提供的东西由用户级应用程序来读取通知?
:用API 18(Android 4.3以上),因此可以开始http://developer.android.com/reference/android/service/notification/NotificationListenerService.html
使用非常简单,但用户必须手动授予权限的应用程序。
终于得到了答案。!!! 使用AccessibilityService
public class NotificationService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// TODO Auto-generated method stub.
//Code when the event is caught
}
@Override
public void onInterrupt() {
// TODO Auto-generated method stub.
}
@Override
protected void onServiceConnected() {
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.feedbackType = 1;
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED;
info.notificationTimeout = 100;
setServiceInfo(info);
}
}
而我的清单是:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.test.notify"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service android:name=".NotificationService" android:enabled="true">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.accessibilityservice.AccessibilityService"/>
</intent-filter>
</service>
</application>
</manifest>
享受编码。!!! :)
没有访问任何通知任何API。 至少这将是安全漏洞。 只有你可以正赶上一些事件的事情,引起的通知(如SMS)。
甲Notification
是通过发送一个凸起Intent
。
Intent intent = new Intent(this, NotificationReceiver.class);
该NotificationReceiver
抓住了Intent
,并弹出一个Notification
。
这是完全有可能赶上同Intent
在使用你的应用程序的一个广播接收器上和过滤Intent
你想要的。