AIcheck — 迅速な宿題(作業)チェック用Androidツール
概要
AIcheckは、スマートフォン上でスクリーンショットをAIに送信し、AIが返した結果を画面に表示することで作業(宿題)チェックを迅速に行えるAndroidアプリです。root権限を利用してスクリーンショット取得やシステムイベントの制御を行う設計で、音量上で浮動ウィンドウを表示、音量下でスクリーンショットを撮ってAIに送信するといったワークフローを備えます。ユーザーは自分で用意したAIのAPIを設定する必要があり、不正利用(例:試験でのカンニング)を禁じる注意書きがあります。
リポジトリの統計情報
- スター数: 23
- フォーク数: 2
- ウォッチャー数: 23
- コミット数: 4
- ファイル数: 10
- メインの言語: Kotlin
主な特徴
- 音量キーで操作するショートカット(音量上:浮動ウィンドウ表示、音量下:スクリーンショット→AI送信)
- スクリーンショットをAIに送り、AIの応答を浮動ウィンドウに表示
- root権限を利用した高速な画面取得・制御(root必須)
- 利用者側でAIのAPIを用意して設定する方式(APIキー管理は利用者責任)
技術的なポイント
AIcheckはKotlinで実装されたAndroidアプリで、root権限を前提にした設計が最大の技術的特徴です。rootを使うことでMediaProjection APIを使わずにシステムコマンド(screencapなど)で画面を直に取得でき、より簡便かつ高速にスクリーンショットを得られます。ただしroot依存は対応端末を限定し、セキュリティ面(root権限でのアクセス管理やAPIキーの保護)に注意が必要です。
ユーザー操作は音量キーに紐づき、音量上で常駐の浮動ウィンドウを表示、音量下でスクリーンショットを取りAIに送信するワークフローがREADMEに述べられています。実装上は、音量キーの検知をBroadcastReceiverやAccessibilityService、あるいはrootでのキーボードイベント取得で行う方法が考えられます。AI送信はHTTPベースのAPI呼び出しになるため、Retrofit/OkHttpやKotlinコルーチン、非同期処理を使ってネットワーク処理とUI表示を分離するのが推奨されます。
画像送信時の前処理(リサイズ、圧縮、Base64エンコードなど)や、戻り値のパースと結果表示のUX設計も重要です。長時間のネットワーク処理や再試行、エラーハンドリング、APIキーの秘密管理(Android Keystoreや暗号化ストレージ)が求められます。さらに、プライバシー保護と法的な配慮(個人情報や著作物の扱い、不正利用の防止)も実装・運用時に考慮すべきポイントです。テストやメンテナンス面では、root環境の差異やAndroidのバージョン差分による挙動の違いに注意が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- .idea: dir
- README.md: file
- app: dir
- build.gradle.kts: file
…他 5 ファイル
(注)リポジトリ内はKotlinベースのAndroidプロジェクト構成が見込まれ、appディレクトリに実際のソースやリソースが入っています。
READMEの抜粋(要約)
- root権限で動作する高速な作業チェック用ツール。
- スクリーンショットをAIに送信し、AIの返答を表示する。
- 音量上で浮動ウィンドウ表示、音量下でスクリーンショット送信。
- 別途AIのAPIを用意する必要あり。
- 不正利用(カンニング等)禁止の明記と利用責任の免責。
まとめ
root依存で即応性の高いスクリーンショット→AI判定ツール。利用時の倫理とセキュリティに注意。