提问者:小点点

启用NotificationListenerService在设置中不显示应用程序-Android Studio-Java


我是android开发的新手,我想做一个应用程序来监听出现在我设备上的新通知,但是当我使用下面的语句启用设置时,我在设置中没有得到我的应用程序名称。 我浏览了Android developers NotificationListenerService并添加了服务AndroidMainfest。 我打开设置activity的意图如下:

Intent intent = new Intent("android.settings.NOTIFICATION_LISTENER_SETTINGS");

下面是我的NotificationListener类

public class NotificationListener extends NotificationListenerService {
    private final String TAG = this.getClass().getSimpleName();
    private final String Notification_Settings = "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS";

    @Override
    public void onCreate() {
        super.onCreate();
        startActivity(new Intent(Notification_Settings));
    }

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
        Bundle extras = sbn.getNotification().extras;
        String title = extras.getString("android.title");
        String text = extras.getCharSequence("android.text").toString();
        Log.i(TAG, title + " " + text);
    }

    @Override
    public IBinder onBind(Intent i) {
        return super.onBind(i);
    }
}

最后,我调用主activity中的服务

Intent i = new Intent(getApplicationContext(), NotificationListener.class);
startService(i);

我不知道我错过了什么。 请帮帮我。 谢谢!

编辑:

AndroidManifest中的服务:

<service android:name=".NotificationListener"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_NOTIFICATION_lISTENER_SERVICE">
    <intent-filter>
        <action android:name="android.service.notification.NotificationListenerService" />
    </intent-filter>
</service>

共1个答案

匿名用户

正如@Pawel指出的,我检查了舱单,注意到

android:permission="android.permission.BIND_NOTIFICATION_lISTENER_SERVICE">
                                                         ^

是一个小的。