【個人開発】ボタンひとつで通知を全部止める Android アプリ「通知おやすみ」を作って Google Play で公開した話

ボタンひとつで通知を全部止めるアプリを作った話(通知おやすみ)

※このサイトの記事内では広告を掲載している場合があります。

この記事で分かること

  • 「通知おやすみ」がどんなアプリで、何ができるのか
  • 止めている間に届いた通知を、あとからまとめて読める仕組み
  • 通知を読み取る強い許可を使うアプリで、プライバシーをどう守っているか
  • 個人で Android アプリを Google Play に出すまでにつまずいたところ

アプリはこちら

「通知おやすみ」は Android 専用の無料アプリです(画面下に小さなバナー広告があります)。

なぜ作ったか

普段はシステムエンジニアとして働いていて、休日に「あったらいいな」と思ったものをアプリにしています。

今回のきっかけは、スマホの通知です。鳴りやまないグループLINE、寝ている間に届く通知、集中したいときや映画を観ているときにポンと出てくるお知らせ。そんなときに、「ボタンをひとつ押したら、決めた時間だけ通知を全部止める。時間が来たら勝手に元に戻る」アプリを作ることにしました。

ただ、通知を止めると「大事な連絡を見逃したらどうしよう」という不安が出てきます。なので、止めている間に届いた通知はアプリの中にためておき、あとでまとめて読めるようにしました。「止めるけど、無視はしない」がこのアプリの考え方です。

できること

  • ワンタップで通知を全部オフ:30分・1時間・3時間・8時間・朝まで・時刻指定から選んで押すだけ。届いた通知はその場で消え、音もバイブも鳴りません。時間が来たら自動で元に戻り、途中で「+30分」の延長もできます。
  • 見逃した通知をあとから読める:止めている間に届いた通知は「見逃した通知」にたまります。アプリごとに絞り込めて、タップするとそのアプリを開けます。
  • スケジュールで自動オフ:「毎日 23:00〜7:00」「平日 9:00〜18:00」のように、決まった時間に自動で止めて、自動で戻します。
  • 大事なものは届ける:止めないアプリを選べます(家族のLINEだけは届ける、など)。連絡先に登録している人の電話は鳴らせますし、同じ番号から15分以内に2回かかってきたら鳴らす「緊急用」の設定もあります。目覚ましアラームは鳴り(止めることもできます)、動画や音楽の音も止まりません。
  • 電話の着信も自動で拒否(Android 10以降):止めている間の電話を、鳴る前に自動で拒否できます。着信履歴には残ります。
  • アプリを開かずに切り替え:クイック設定パネル(画面上から引き下ろすところ)のボタンや、ホーム画面のウィジェットからON/OFFできます。残り時間はボタンのまわりの輪でひと目で分かります。
  • 日本語と英語に対応:日本語以外の設定のスマホでは英語で表示されます(英語名は「Notification Nap」)。

プライバシーについて

このアプリは、通知を消すために Android の「通知へのアクセス」という強い許可を使います。この許可があると、届いた通知の中身(アプリ名・タイトル・本文)を読み取れてしまうので、扱いにはとても気をつけました。

  • 読み取った通知の内容は、「通知を消すこと」と「見逃した通知に表示すること」にだけ使います。
  • 見逃した通知はスマホの中だけに保存され(最大500件)、外へ送ることはありません。クラウドへのバックアップの対象にもしていません。
  • 保存は設定でオフにでき、画面からいつでも削除できます。アプリを消せば、保存した内容もすべて消えます。
  • 連絡先は「連絡先の人の電話は鳴らす」をオンにしたときだけ、スマホの中で照らし合わせるのに使います。
  • インターネット通信は、画面下のバナー広告(Google AdMob)を表示するためだけに使います。広告のために広告IDなどの情報が Google に送られますが、通知の内容・連絡先・電話番号が広告に使われることはありません。
  • このアプリ自身が通知を出すこともありません。

くわしくはプライバシーポリシー(https://toybox-anime.github.io/tsuchi-off-site/privacy.html )に書いています。

技術構成

項目内容
言語Kotlin
対応OSAndroid 8.0 以上(着信の自動拒否は Android 10 以上)
通知を消す仕組みNotificationListenerService(「通知へのアクセス」で動く機能)
音・バイブを止めるAndroid のおやすみモード
着信の自動拒否CallScreeningService(着信スクリーニング)
時間になったら戻すAlarmManager(スマホの再起動後も張り直す)
ボタン・ウィジェットクイック設定タイル、ホーム画面ウィジェット
データの保存スマホの中だけ(設定値と、見逃した通知のファイル)
広告Google AdMob のバナーのみ(全画面広告なし)
ビルドと配信GitHub Actions でビルドし、Google Play へ配信
開発の相棒Claude Code(AI)

つまずいたところ

iPhone では作れなかった

この仕組みは、iPhone では作れません。iPhone では、ほかのアプリの通知にさわらせてもらえません。Android には「通知へのアクセス」という仕組みがあるので、届いた通知を消したり、中身をあとで読めるように残したりできます。そのため、このアプリは Android だけです。

消せない通知がある

通話中や音楽を再生しているときの表示など、Android の仕様で消せない通知があります。これらは無理に消そうとせず、対象外にしました。また、LINE通話のようなアプリの通話は、着信の自動拒否には対応できていません(音とバイブは止まります)。

「通知へのアクセス」のスイッチが押せない

Google Play を通さずにアプリを入れて試していたとき、Android 13 以降では「通知へのアクセス」のスイッチがグレーになって押せないことがありました。これは Android の「制限付き設定」という安全のための仕組みで、アプリ情報の右上の︙から「制限付き設定を許可」を選ぶ必要があります。アプリの中にも、この手順の案内を入れています。

Google Play に出すには、テスター12人×14日が必要だった

個人のアカウントで新しくアプリを Google Play に出すには、製品版の前に「12人以上のテスターに14日間使ってもらうクローズドテスト」が必要です。アプリを作り終えても、すぐには公開できません。このアプリでは、テスター募集サービスを利用して12人以上に14日間使ってもらい、テストを終えました。

テスト中にもらった声で直したところもあります。

  • 通知へのアクセスを許可する前にメインのボタンを押しても、何も起きなかった → 理由の説明を出し、そこから設定画面を開けるようにしました。
  • 日本語しかなくて分からない、英語版がほしい → アプリを英語に対応し、ストアの英語の説明文も用意しました。

まとめ

「通知おやすみ」は、ボタンひとつで決めた時間だけ通知を全部止めて、止めている間の通知はあとでまとめて読めるアプリです。毎晩決まった時間に自動で止めて、朝になったら元どおりにすることもできます。

通知を読み取る強い許可を使うアプリだからこそ、「通知の中身はスマホの外に出さない」ことを一番大事にして作りました。集中したいときや寝るときに、よかったら使ってみてください。

ほかに作ったアプリは https://nano-toy-lab.com/works/ にまとめています。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA