Your best bet is to use NotificationListenerService
, which was added in API level 18.
Here's an example:
public class FacebookNotificationListener extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
final String packageName = sbn.getPackageName();
if (!TextUtils.isEmpty(packageName) && packageName.equals("com.facebook.katana")) {
// Do something
}
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
// Nothing to do
}
}
In your AndroidManifest
<service
android:name="your.path.to.FacebookNotificationListener"
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" >
<intent-filter>
<action android:name="android.service.notification.NotificationListenerService" />
</intent-filter>
</service>
Also, your users will need to enable your app to listen for notifications to be posted under:
- Settings --> Security --> Notification access
But you can direct your users straight there by using the following Intent
:
startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…