web-dev-qa-db-ja.com

Android:通知領域の上に通知を配置するにはどうすればよいですか?

通知領域の上に通知を配置しようとしています。

解決策は、次のような未来の時間を使用して、パラメーター「いつ」を通知オブジェクトに設定することです。

notification.when = System.currentTimeMills()*2; 

これで私が使用しているコード:

        long timeNotification = System.currentTimeMillis()*2;
        Notification notification = new Notification(statusIcon,c.getResources().getString(R.string.app_name),timeNotification);
        notification.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
        notification.when = timeNotification;
        notification.priority = Notification.PRIORITY_MAX;

しかし、一部のアプリ(Facebookなど)は、自分の現在の時刻を簡単に通知することができます。

通知を更新すると、通知の下に残ります。

Notificationを通知領域の上部に配置するには、どのパラメーターを設定する必要がありますか?

22
Meroelyth

これを行う必要があります。他の答えは時代遅れのようです。

NotificationCompat.Builder mBuilder =
            (NotificationCompat.Builder) new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.some_small_icon)
            .setContentTitle("Title")
            .setContentText("This is a test notification with MAX priority")
            .setPriority(Notification.PRIORITY_MAX);

setPriority(Notification.PRIORITY_MAX)は重要です。必要に応じて、次のいずれかに置き換えることもできます。

異なる優先度レベル情報:

PRIORITY_MAX-タイムクリティカルであるか、続行する前に解決する必要がある状態をユーザーに警告する重要かつ緊急の通知に使用します特定のタスク。

PRIORITY_HIGH-主に、ユーザーにとって特に興味深い内容のメッセージやチャットイベントなどの重要なコミュニケーションに使用します。高優先度の通知は、ヘッドアップ通知表示をトリガーします。

PRIORITY_DEFAULT-ここで説明する他の優先度のいずれにも該当しないすべての通知に使用します。

PRIORITY_LOW-ユーザーに通知する必要があるが、緊急性の低い通知に使用します。優先度の低い通知はリストの一番下に表示される傾向があり、これにより、公開または無向のソーシャルアップデートなどの通知に適しています。ユーザーは通知についての通知を求めていますが、これらの通知が緊急または優先より優先されることはありません。直接コミュニケーション。

PRIORITY_MIN-気象情報やコンテキスト位置情報などのコンテキスト情報または背景情報に使用します。最小優先度の通知はステータスバーに表示されません。ユーザーは、通知シェードを展開するとそれらを発見します。

詳細については、次のリンクを確認してください。 http://developer.Android.com/design/patterns/notifications.html#correctly_set_and_manage_notification_priority

18
Vineet Ashtekar

通知のpriorityを高に設定してみてください

ドキュメント> 通知の優先度

また、この質問を確認してください ピン通知を通知領域の上部に

3
Jagdeep Singh

通知を他の通常の通知よりも高く表示する場合は、Ongoingを作成できます。ただし、この場合、ユーザーは手動で消去できますnot

これを行うには、Notificationオブジェクトにフラグを設定します。

notif.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR
3
HitOdessit

「ヘッドアップ」通知、つまり現在のユーザーウィンドウの上部に表示される通知が必要な場合は、ビルダーで次のように設定する必要があることに注意してください。

setDefaults(NotificationCompat.DEFAULT_VIBRATE)

参照は javadoc にあります。

一部のプラットフォームでは、振動する通知がヘッドアップ通知として提示される可能性が高くなります。

ヘッドアップ通知の完全な例:

NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.some_small_icon)
            .setContentTitle("Title")
            .setContentText("This is a test notification with MAX priority")
            .setPriority(Notification.PRIORITY_MAX)
            .setDefaults(NotificationCompat.DEFAULT_VIBRATE);
2
David Rawson