Android O でバックグラウンド アプリとオーバーレイの永続的な通知を非表示にする

click fraud protection

バックグラウンド アプリの実行中またはオーバーレイの表示を示す Android O の永続的な通知を非表示にするチュートリアル。

2017 年 8 月 25 日更新: バックグラウンドで永続的な通知を非表示にするために使用しているメソッドに Google がパッチを適用したため、このチュートリアルは廃止されました。 ただし、この問題に対する別の回避策を発見し、それに関する短いチュートリアルを作成しました。 ここで見つけることができます.

Android O は、私たちがよく知っている Android OS に大幅な機能強化をもたらすことを目指しています。 電話用のピクチャー・イン・ピクチャー・モード、通知チャネル、スマート・テキスト選択、自動入力サービス、およびバッテリー寿命、パフォーマンス、セキュリティーを強化するための内部の多くの変更。 ユーザーがバッテリー寿命とパフォーマンスの問題を解決するのに役立つと考えられる機能の 1 つは、バックグラウンド プロセスの制限です。 あまり詳しく説明しませんが、Android O のアプリはマニフェストに登録されているものから起動できなくなります。 暗黙的なブロードキャスト レシーバーを経由せずにバックグラウンド サービスを開始できなくなりました。 ジョブスケジューラ。 アプリがバックグラウンド サービスを開始したい場合は、通知を投稿してバックグラウンド サービスを開始していることをユーザーに明示的に伝える必要があります。 ただし、アプリがバックグラウンドで実行されている場合、Android O は一見、そのままの状態で動作するようになりました。 別の どのアプリが実行されているかを通知する永続的な通知。 これは、 SYSTEM_ALERT_WINDOW 許可(人気のあるものなど) トワイライト app) は現在オーバーレイを表示しています。

Android O バックグラウンドおよびオーバーレイ アプリの永続的な通知。 クレジット: ベン・スクーン \\ 9to5Google

これらの通知はデフォルトで最小化されていますが、ユーザーが無視したり、設定で永久にブロックしたりすることはできません。 この動作は多くのユーザーにとって非常に迷惑なので、Google が Android O/Android 8.0 の最終リリースでこの通知を無効にする方法を提供してくれることを切に願っています。 ただし、そうでない場合は、 

まだ道はある 永続的なバックグラウンド アプリの通知を永久に非表示にする. その方法をステップバイステップのガイドで紹介し、その後、その仕組みと重要な注意点について説明します。


要件:

  • アンドロイドO
  1. Windows を使用している場合は、特定の携帯電話用の USB ドライバーをインストールします (ドライバーは次の場所にあります) ここ).
  2. ダウンロード ADBバイナリ 特定のオペレーティング システム用 (ウィンドウズ, マック, Linux). これらのリンクは常にバイナリの最新バージョンを指すため、最新バージョンを探してネットを探し回る必要はありません。
  3. ダウンロードした ZIP ファイルの内容を、PC 上のアクセスしやすいフォルダー (ダウンロード フォルダーなど) に解凍します。
  4. 携帯電話の設定アプリに移動し、「携帯電話について」オプションをタップします。
  5. ビルド番号を見つけて 7 回タップして、開発者モードを有効にします。 有効にするとポップアップが表示されます。
  6. [設定] メイン メニューに戻り、[開発者向けオプション] に入り、USB デバッグ モードを有効にできます。
  7. 携帯電話を PC に接続し、通知パネルを下にスワイプして、USB モードを「充電のみ」から「ファイル転送 (MTP)」モードに変更します。 お使いの携帯電話ではこれは必要ないかもしれません。
  8. PC で、ADB バイナリを抽出したディレクトリを参照します。
  9. この ADB ディレクトリでコマンド プロンプト/ターミナルを起動します。 Windows ユーザーの場合は、Shift キーを押しながら右クリックして「ここでコマンド プロンプトを開く」オプションを選択することでこれを行うことができます。
  10. コマンド プロンプトまたはターミナル環境に移動したら、次のコマンドを入力します。 adb devices
  11. これにより、ADB デーモンが起動します。 ADB を初めて実行する場合は、接続の承認を求めるプロンプトが携帯電話にも表示されます。
  12. ここで、ステップ 10 の adb devices コマンドを再実行すると、コマンド プロンプト/ターミナルにデバイスのシリアル番号が出力されます。 そうであれば、次に進む準備は完了です。 そうでない場合は、USB ドライバーが正しくインストールされていない可能性があります。
  13. コマンド プロンプトに戻り、次のコマンドを入力します。 adb shell
  14. 次に、次のコマンドを実行します。 cmd appops set android POST_NOTIFICATION ignore
  15. 成功メッセージなどは表示されませんが、エラーが表示されない限り、正常に動作しているはずです。 あとは携帯電話を再起動するだけです。

    はい、これらはスクリーンショットではなく、携帯電話の画面の写真であることに気付きました。 私自身は Android O 対応端末を持っていないので、TK さんに画像を送ってもらいました。

  16. このコマンドを元に戻す場合は、コマンド プロンプトに次のように入力します。 cmd appops set android POST_NOTIFICATION allow

使い方

Android のユーザー向け権限管理システムである App Ops の隠しコマンド ライン インターフェイスを使用すると、「android」パッケージからの POST_NOTIFICATION 権限を制限できます。 (注: 「拒否」ではエラーが発生する可能性があるため、「拒否」ではなく「無視」に設定しています。) この権限は、関連するソース コードを見て見つけました。 アプリオペレーションマネージャーには、付与/取り消しできるすべての権限がリストされていますが、その多くは Android 設定ではアクセスできません。 「android」パッケージは、実際には「Android システム」別名 Framework-res.apk を指します。これは、削除しようとしている永続的な通知を担当します。

基本的に Android システムの POST_NOTIFICATION 権限を取り消すことで、通知を表示できなくなります。 とても簡単そうに思えますよね? 残念ながら、注意すべき点があります。 「Android システム」はこの通知以外にも責任があるため、投稿される可能性のある他の通知は表示されなくなります。 これには、USB モード通知 (開発者向けオプションの設定を通じて変更できます) やその他のものが含まれる場合があります。

これは私たちにとってかなり思い切った措置ですが、現時点ではこの通知を個別に非表示にする唯一の方法です。 携帯電話をルート化したり、フレームワーク自体を変更したりすることは、明らかに多くのユーザーが意欲も能力もありません。 すること。 Google が Android O の将来のリリースでこの通知を非表示にする方法を提供するか、できればこの通知を完全に削除する方法を提供してくれることを心から願っています。 Google が、アプリがバックグラウンドで実行されているときにユーザーに通知することで、ユーザー エクスペリエンスを向上させたいと考えているのは当然のことです。 ユーザーは気づいていないかもしれませんが、ユーザーが選択した方法は、各アプリの状況を知っている私たちにとっては煩わしいものです。 を使用しています。