2

NotificationListenerService から派生したクラスがあり、アプリの起動時に自動的に作成および開始されます。ただし、アクティビティから後でサービスを遅延して開始し、アプリの開始時に自動的に開始しないようにしたいと考えています。これを行うことは可能ですか?マニフェストは次のとおりです。

    <service android:name=".MyNotificationListener"
        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>

NotificationListenerService を使用する前に、ユーザーは設定を介してアプリの通知アクセスを許可する必要があることに注意してください。ただし、インテント フィルターがマニフェストから削除された場合、アプリは設定に表示されないため、ユーザーは権限を付与できず、権限がないとサービスを開始できません。OS は、アプリを設定に表示する前に、そのインテント フィルターが存在する必要があるようです。

更新: BIND_NOTIFICATION_LISTENER_SERVICE のドキュメントには次のように記載されています。

システムのみがそれにバインドできるようにするために、NotificationListenerService によって要求される必要があります。

つまり、OS だけが NotificationListenerService を開始でき、他の誰も開始できないことを意味すると思います。

4

1 に答える 1

-2

はい。サービスのインテントを作成し、startService を呼び出します。

于 2015-04-01T18:05:21.893 に答える