【Android Pie】通知を最小化する / 元に戻す

「通知がステータスバーに表示されない」とか「ステータスバーにアイコンを表示する設定に戻したい」ときの設定の手順です。

まず、表示された通知の横スワイプからの通知設定の変更で、「最小化」します。

きっと、この操作を使ってうるさい通知を非表示にしていることでしょう。

しかし、音楽プレーヤーのバックグラウンド再生などのそれを意味するアイコンを表示しておいてほしい場合があります。

その場合の戻し方です。



そのアプリの「アプリ情報」画面などから「通知」を選択してその設定へ。

各選択肢右にあるチェックボックスしか操作の対象でないと思っていたら、項目名もタップが可能でさらに表示される選択ダイアログにて設定できます。

このダイアログ、英語表示だと以下の文言になるけど、おかしくねえですか???

知らんけど。

👉【Android Pie】「通知」設定のシンプルな考え方
👉 How do I unminimize android notifications on P? : AndroidQuestions
👉【公式 2018-05-07】Android Pie のバージョンシェア がやっと 10%超えている件


【Android Pie】「通知」設定のシンプルな考え方

Android 9.0 Pie では、基本的にここからでよい。
(機種によって多少は違う)

「設定」-「アプリと通知」-「通知」

ここから、システム上での通知の設定を行う。

- 「サイレントモード」

- アプリごとの「通知の表示」

あとは、各アプリを起動しての

- アプリ内の機能によるON/OFF。

の3つで「通知」の設定を行う。

Android で通知を管理する - Android ヘルプ

サイレントモード

「音」にだけ関する設定かと思っていたのですが、視覚的な「通知の表示」についても設定が反映されます。

Android のサイレント モードで割り込みを制限する - Android ヘルプ

アプリごとの「通知の表示」

私はこの方法のみで設定することにしています。

「通知を最近送信したアプリ」からアプリごとにOFFしていく。

という手順でやっています。

アプリ内の機能によるON/OFF

各アプリ内で設定する。

例えば、以下LINEの場合。

まとめ

これまでのAndroidのバージョンでも、ブロックやフィルターなど煩わしい通知の設定で混乱してきましたが、今回 Android Pie の仕様はどうなのでしょうね。

通知が表示されない とかどうせブロックの設定だろ! → 原因「フィルター」

Android 7.1 ( API25 / N_MR1 ) の通知の設定

「通知」に関する部分は、仕様の変更が多く、イライラさせられることが多いです。



最後に、疑問を一つ。

通知をOFFにしているアプリの一覧をどこかで確認できないのか。

このような。


This is fixed in Q. No fix is available in Pie.

見れないのかPieでは。

と思いきや、GalaxyのAndroid 9 Pie では見れる。

ちなみ、Q beta3 では、「OFFにしました」で fixed。

なんせ、複雑過ぎではない? 今のスマホ。

Android 9 Pie 使ってみた
【Android Pie】ナビゲーションバー の ホームボタン を ピル型 にする方法
【Android Pie】Google Digital Wellbeing を使う
【Android Pie】Auto-rotate (自動回転) OFF のときの挙動
【Android Pie】使いやすくなった音量設定
【Android Pie】スクリーンショット取得→編集 は「電源ボタン長押し」から
【Android Pie】通知を最小化する / 元に戻す
👉【公式 2018-05-07】Android Pie のバージョンシェア がやっと 10%超えている件

→ 分割非対応アプリを2画面で表示する。- YouTube


【Kotlin】バッキング・フィールド/プロパティ

フィールド

Fields cannot be declared directly in Kotlin classes.
Kotlin クラスでは、直接にフィールドを宣言することはできません。

プロパティ


// Kotlin
class Human {
    val age = 20
}


// Java
public final class Human {
   private final int age = 20;

   public final int getAge() {
      return this.age;
   }
}

バッキング・フィールド

ゲッターやセッターにカスタムロジックを入れたい場合は、「バッキング・フィールド」を使うことができます。

カスタムゲッターやセッターのスコープ内で「field」にアクセスできます。


// Kotlin
var counter = 0
    set(value) {
        if (value >= 0) field = value
    }


// Kotlin
class Human {
    val age = 20
        get() {
            println("Age is: $field")
            return field
        }
}


// Java
public final class Human {
   private final int age = 20;

   public final int getAge() {
      String var1 = "Age is: " + this.age;
      System.out.println(var1);
      return this.age;
   }
}

バッキング・プロパティ

ゲッターやセッターの外でフィールドに直接アクセスしたいときなどに使います。

private なフィールドに_を付けて明示します。


// Kotlin
private var _table: Map<String, Int>? = null
public val table: Map<String, Int>
    get() {
        if (_table == null) {
            _table = HashMap() // Type parameters are inferred
        }
        return _table ?: throw AssertionError("Set to null by another thread")
    }


// Kotlin
class Human {
    private val _age: Int = 20
    val age: Int
        get() {
            return _age
        }

     val printAge = {
         println("Age is: $_age")
     }
}


// Java
public final class Human {
   private final int _age = 20;
   @NotNull
   private final Function0 printAge = (Function0)(new Function0() {
      public Object invoke() {
         this.invoke();
         return Unit.INSTANCE;
      }

      public final void invoke() {
         String var1 = "Age is: " + Human.this._age;
         System.out.println(var1);
      }
   });

   public final int getAge() {
      return this._age;
   }

   @NotNull
   public final Function0 getPrintAge() {
      return this.printAge;
   }
}

まとめ

Java にデコンパイルした状況を確認しながら進むと理解しやすいように思います。

👉【Kotlin】Properties and Fields: Getters, Setters
👉 Properties and Fields: Getters, Setters, const, lateinit - Kotlin Programming Language
👉 Backing properties in Kotlin – ProAndroidDev
👉【MVVM】 ViewModel の_プロパティ記述