Androidのステータスバー(画面上部の時計や電波アイコンがある場所)に、予約の空き状況を表示するアプリです。
┌────────────────────────────────────────┐
│ 🔋 📶 [5] [3] 12:34 │ ← ステータスバー
└────────────────────────────────────────┘
↑ ↑
一般 視野
(白黒アイコンで数字表示)
android-reservation-status)を選択# プロジェクトフォルダに移動
cd android-reservation-status
# デバッグ版APKをビルド
./gradlew assembleDebug
# APKファイルの場所
# app/build/outputs/apk/debug/app-debug.apk
app-debug.apk)をAndroid端末に転送android-reservation-status/
├── app/
│ ├── src/main/
│ │ ├── java/com/fujiminohikari/reservationstatus/
│ │ │ ├── MainActivity.kt # メイン画面
│ │ │ ├── ReservationService.kt # 常駐サービス
│ │ │ ├── DataFetcher.kt # データ取得
│ │ │ └── BootReceiver.kt # 起動時の自動開始
│ │ ├── res/
│ │ │ ├── layout/
│ │ │ │ └── activity_main.xml # 画面レイアウト
│ │ │ ├── drawable/ # アイコン
│ │ │ └── values/ # 文字列・テーマ
│ │ └── AndroidManifest.xml # アプリ設定
│ └── build.gradle.kts # アプリのビルド設定
├── build.gradle.kts # プロジェクト設定
├── settings.gradle.kts # Gradle設定
└── README.md # このファイル
メイン画面のコード。サービスの開始/停止ボタンと、現在のステータス表示を担当。
バックグラウンドで動作する常駐サービス。1分ごとにデータを取得し、ステータスバーの通知を更新。
Cloud StorageからJSONデータを取得するクラス。一般予約と視野予約の両方に対応。
端末起動時にサービスを自動的に開始するためのレシーバー。
DataFetcher.kt の以下の部分を変更:
private const val GENERAL_URL = "https://storage.googleapis.com/..."
private const val SHIYA_URL = "https://storage.googleapis.com/..."
ReservationService.kt の以下の部分を変更:
const val UPDATE_INTERVAL = 60000L // 1分(ミリ秒)
ReservationService.kt の createNotification メソッドで色を指定。
| 権限 | 用途 |
|---|---|
| INTERNET | データ取得 |
| FOREGROUND_SERVICE | 常駐サービス |
| POST_NOTIFICATIONS | 通知表示(Android 13以降) |
| RECEIVE_BOOT_COMPLETED | 端末起動時の自動開始 |
# リリース版APKをビルド
./gradlew assembleRelease
※ リリース版には署名が必要です。詳細は公式ドキュメントを参照。
このプロジェクトは内部利用目的で作成されています。