本アプリは、CameraXとML Kit Barcode Scanningを組み合わせたバーコード読み取りアプリです。
graph TD
A[MainActivity] --> B[CameraPreviewViewModel]
A --> C[CameraPreviewScreen]
C --> D[CameraPreviewContent]
B --> E[BarcodeScanner]
B --> F[CameraXPatch]
subgraph "Run"
E -.->|"Flow<BarcodeData>"| B
B -.->|"StateFlow<ScanResult>"| D
end
ML Kitの仕様に準拠します。
- コード 128(
FORMAT_CODE_128)- コード 39(
FORMAT_CODE_39)- コード 93(
FORMAT_CODE_93)- Codabar(
FORMAT_CODABAR)- EAN-13(
FORMAT_EAN_13)- EAN-8(
FORMAT_EAN_8)- ITF(
FORMAT_ITF)- UPC-A(
FORMAT_UPC_A)- UPC-E(
FORMAT_UPC_E)- QR コード(
FORMAT_QR_CODE)- PDF417(
FORMAT_PDF417)- Aztec(
FORMAT_AZTEC)- Data Matrix(
FORMAT_DATA_MATRIX)
- ML Kit Barcode Scanning
- CameraX with Compose
- Android Jetpack Compose
- Android Studio Narwhal | 2025.1.1 Patch 1
このアプリでは、カメラ機能を使用します。
THINKLETを使う場合は、THINKLET開発者ポータルの開発者画面を表示、adb設定 を確認ください。
- このレポジトリをcloneします。
gradlewでのビルド(もしくは、AndroidStudioから実行してください。
# USBで実機とPCを接続します
# デバッグインストール
./gradlew installDebug- アプリを起動します。
- 必要に応じてカメラのPermissionを許可します。
- カメラプレビュー内にバーコードが映るようにデバイスを移動します。
- バーコードが検出されると、画面下部にスキャン結果が表示されます。
- バーコード全体がカメラ画面に収まるようにしてください。
- 適度な距離を保ち、ピントが合うまで待ってください。
- 照明が十分な場所で使用してください。
- バーコードが歪まないよう、正面から読み取ってください。
例えば以下のようなアプリが実現できるでしょう。
書籍のISBNをスキャンし、Google Books APIを呼び出すことで、書籍情報を取得できます。
GET https://www.googleapis.com/books/v1/volumes?q=isbn:{スキャンしたISBN}
詳細は Google Books API ドキュメント をご確認ください。
商品バーコードをスキャンし、Yahoo!ショッピング 商品検索APIを呼び出すことで、商品情報を取得できます。
GET https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch?appid={APP_ID}&jan_code={スキャンしたバーコード}
詳細は Yahoo!ショッピング API ドキュメント をご確認ください。
- カメラの汚れを確認してください。
- バーコードの損傷や汚れを確認してください。
- 照明条件を改善してください。
- バーコードとカメラの距離を調整してください。
- 不要なバーコード形式を無効化してください。(BarcodeScanner の supportFormats)
- デバイスの再起動を試してください。
