1

サービスとして実行することを目的とした小さなアプリケーションを作成しました。メモリを解放するときに、OS がサービスをシャットダウンすることを決定したことが数回ありました。ドキュメントには、これを回避するために、startForeground を呼び出してこのメ​​ソッドに通知を渡すことにより、フォアグラウンド サービスを使用できると記載されています。

通知を表示するコードを書きましたが、すべて正常に動作しているようです。ただし、デバイスの「電源」ボタンを押して画面をオフにすると、Samsung Galaxy S 1 の下部にある 2 つの「通知」ライトが点灯する特定の動作が 1 つあります。通常、これは、SMS や不在着信など、電話で確認すべき「新しい」ものがあることを示しています。進行中のサービスがあるという唯一の通知がオンになっているときに、これらが点灯するのはあまり意味がないと思います.

通知なしではフォアグラウンド サービスを利用できないことを理解しています。

フォアグラウンド サービスでなくなるまで、フォアグラウンド サービスをキャンセルできないことを理解しています。

しかし、新しい重要な情報があるかのように、この Galaxy S1 の下部にあるライトの点灯を止める方法はありますか?

編集:私が使用しているコードは次のとおりです。

Intent intentForeground = new Intent(this, MainService.class)
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    PendingIntent pendIntent = PendingIntent.getActivity(getApplicationContext(), 0, intentForeground, 0);      
    Notification notification;
    NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext())
        .setSmallIcon(R.drawable.ic_notification)
        .setTicker("Service started...")
        .setContentTitle("Vantage phone client")
        .setContentText("Service running")
        .setContentIntent(pendIntent)
        .setDefaults(Notification.DEFAULT_ALL)
        .setAutoCancel(true)
        .setOnlyAlertOnce(true)
        .setOngoing(true);

    notification = builder.build();
    notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;

    startForeground(1, notification);
4

2 に答える 2

1

デフォルトに使用DEFAULT_ALLしています。これにより、デフォルトのライトも提供されます。デバイス上では、ライトアップを含むデフォルトのライトが表示されます。削除するか、ライト ( | )setDefaults()以外のものに制限します。Notification.DEFAULT_SOUNDNotification.DEFAULT_VIBRATE

于 2013-07-17T19:46:15.863 に答える