6

通知を使用して、サービスがまだ実行中であることをユーザーに通知しています。ここで、通知ライトを使用してユーザーに通知したいと思います。(それは空想だから)

通知は正常に機能しますが、通知ライトは何もしません。他のアプリケーションは通知ライトで正常に動作します(gtalk、facebook)

これは、多かれ少なかれ、これらのフラグが追加された通知のサンプルコードです。

notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 100;
notification.ledOffMS = 100;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;

notification.flags |= Notification.FLAG_NO_CLEAR + Notification.FLAG_ONGOING_EVENT;
mNotificationManager.notify(NOTIFICATION_ID, notification);

notification.defaults |= Notification.DEFAULT_LIGHTS;

代わりにどちらも機能しません。

Android4.0を搭載したGalaxyNexusでデバッグしていますが、アプリのターゲットはAndroid2.3.3です。

編集:これは許可の問題である可能性がありますか?はいの場合、どれですか?すべてを調べたところ、通知ライトに一致する許可が見つかりませんでした。

4

2 に答える 2

2

ジェリー ビーン デバイスでは、通知の優先度が最大またはデフォルトに設定されている場合にのみ LED が機能します。もう一度確認してください。次のコード スニペットは、jb デバイスで正常に動作しています。

notification.setLights(0xFF0000FF,100,3000);
notification.setPriority(Notification.PRIORITY_DEFAULT);

ここでは、ユーザーが自分のデバイスのロックを解除するまで、100 ミリ秒間オンになり、3000 ミリ秒間オフになる通知用の青色 LED を示しています。

また、setDefaults メソッドを無視して SetLight、SetSound、Setvibration などを使用するよりも、NotificationCompat (互換性) クラスを使用しているかどうかを確認します。

于 2012-12-24T13:12:10.020 に答える
2

+ 演算子にエラーがあると思います。OR が必要です。

notification.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;

編集:フラグを使用している場合、正しいフラグは次のようにする必要があると思います:

notification.flags |= Notification.FLAG_SHOW_LIGHTS
于 2012-04-27T23:07:10.353 に答える