BatteryPush — 予備機のバッテリ通知ツール
概要
BatteryPushは、サブ端末(予備機)のバッテリ残量や充電状態を監視し、その変化を第一時間でメイン端末に届けることを目的としたAndroidアプリです。低電量、充電完了などのイベントをトリガーに、通知欄、SMS送信、電話発信、Webhook経由(企業向けチャットツール等)での通知を行います。通知履歴をアプリ内で確認・クリアでき、デバイス情報やテンプレートを埋め込むことで柔軟なメッセージ生成が可能。導入は簡単で、既存の自動化フロー(Taskerや端末メーカーの自動タスク機能)との組み合わせにも適します。
リポジトリの統計情報
- スター数: 6
- フォーク数: 0
- ウォッチャー数: 6
- コミット数: 3
- ファイル数: 13
- メインの言語: HTML
主な特徴
- 低電量/充電完了などのバッテリイベントを自動で検知して通知
- 複数チャネル対応:通知欄、SMS、電話、Webhook(飛書/钉钉など)
- 通知履歴の保存・閲覧・一括クリア機能
- テンプレートとデバイス情報の自動埋め込みで柔軟にカスタマイズ可能
技術的なポイント
BatteryPushはAndroidアプリとして、端末側のバッテリ状態変化をトリガーに複数チャネルへ通知を出す構成になっています。技術的に注目すべき点は以下です。
-
イベント検知・自動トリガー: Androidのバッテリ関連インテント(ACTION_BATTERY_CHANGED など)や充電ステータスを受け取る仕組みに基づき、指定した閾値(低電量や満充電)で通知処理を起動します。端末の省電力や制限に配慮し、バックグラウンド実行を最小限に抑える設計が想定されます。
-
マルチチャネル通知: ローカル通知(通知欄)はNotificationManagerを用い、SMSはSmsManagerまたは暗黙インテント、電話はIntent.ACTION_CALLなどで発信を行う実装が想定されます。WebhookはHTTPクライアント(OkHttp等)でPOSTリクエストを送り、JSONテンプレートにデバイス情報・電池情報を埋め込んで外部サービスへ通知します。
-
テンプレートとデータ埋め込み: メッセージテンプレート機能により、変数(デバイス名、残量、時刻、充電状況など)をテンプレート内に差し込める設計。これによりWebhookやSMSの内容を柔軟にカスタマイズできます。テンプレート処理はシンプルな文字列置換で実装可能ですが、将来的にはテンプレートエンジンの導入も容易です。
-
履歴管理とUI: 通知の送信履歴をローカルに保存(SQLite/RoomやSharedPreferencesの組合せ)し、一覧表示や一括削除を提供。軽量なUIで履歴の追跡・デバッグを行えるため、運用時の因果関係把握が容易です。
-
互換性と実装上の制約: SMS送信や電話発信は機種やOSバージョンによりユーザー確認ダイアログが発生する場合があり、完全自動化は制約されることがあります。また、Androidのバックグラウンド制限(Dozeモードやバッテリ最適化)措置により、常時監視にはバッテリや権限の取り扱い注意が必要です。Webhookは外部との通信を伴うため、ネットワーク状態やリトライ設計、タイムアウト・エラーハンドリングを実装することで信頼性が向上します。
-
自動化との親和性: BatteryPushは単体でも動作しますが、Taskerやメーカー提供の自動化(例:Xiaomiスマートフォンの「自動タスク」)と組み合わせることで、より柔軟な運用が可能です。例えば、サブ端末が特定のネットワークに接続したときのみ通知する、夜間は抑制する等のルール実装が可能です。
-
セキュリティとプライバシー: 電話番号やWebhookエンドポイントなどの機密情報はローカルで暗号化またはアクセス制限して保存するべきです。MITライセンス下でソースが公開されているため、導入前にコードを確認し、必要に応じて監査・変更することが推奨されます。
全体として、BatteryPushはシンプルなユースケースを想定しつつ、複数の通知経路や履歴管理、テンプレート機能を備えた実用的なツールです。運用にはOSや端末の制約を理解した上で、権限設定・自動化ポリシーの最適化が求められます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gradle: dir — ビルドキャッシュやGradleラッパー関連(ビルド管理に関する構成が含まれる可能性)
- BatteryPush.png: file — READMEに埋め込まれたアプリ紹介画像
- LICENSE: file — MITライセンス(利用・改変の許諾条件が明示)
- README.md: file — プロジェクトの概要、使い方、ダウンロードリンクなどの説明(画像と機能リストを含む)
- app: dir — Androidアプリ本体のソース/リソースが配置される主要ディレクトリ(Activity、BroadcastReceiver、レイアウト、マニフェスト等)
- build.gradle: file — Gradleビルド設定(依存関係やSDKバージョン指定)
- gradle.properties: file — ビルド/環境に関するプロパティ
- settings.gradle: file — マルチモジュール構成があればその宣言
- .gitignore: file — Gitで無視するファイルの定義
- BatteryPush.apk(READMEリンク): file — リポジトリ経由で配布されているデバッグ版APKへの案内(リリース/テスト用)
…他 8 ファイル
(注)上記はREADMEの記述とリポジトリツリーから推定した構成説明です。実際のソース実装はappディレクトリ配下のコードを参照してください。
まとめ
シンプルで導入しやすい、予備機のバッテリ通知に特化した実用的なAndroidツール。
リポジトリ情報:
- 名前: BatteryPush
- 説明: BatteryPush - 让备用机的电量状态,第一时间触达你的主力机。 Android 电量跨设备通知,支持通知栏、短信、电话、Webhook(飞书/钉钉),查看提醒记录与配置。MIT 开源。
- スター数: 6
- 言語: HTML
- URL: https://github.com/louislili/BatteryPush
- オーナー: louislili
- アバター: https://avatars.githubusercontent.com/u/112963808?v=4