查看其他应用的通知

时间:2014-04-24 21:00:01

标签: android android-notifications

我的应用程序应该使用哪种API来查看我是否收到了来自facebook的示例的通知,因此请在一个文本框中写“Facebook!”?

1 个答案:

答案 0 :(得分:9)

最好的办法是使用NotificationListenerService,这是在API级别18中添加的。

以下是一个例子:

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
    }

}

在您的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>

此外,您的用户需要启用您的应用,以便在以下位置收听通知:

  • 设置 - &gt;安全 - &gt;通知访问

但是,您可以使用以下Intent

直接指导您的用户
startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));