UPI 対応の Android QR スキャナ
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Android 13(Android 12 との下位互換性あり)では、ユーザーが対応するクイック設定タイルから直接アクセスできる専用の QR コード スキャナを追加することで、UPI 決済フローをサポートしています。ユーザーは、ライブカメラまたは静止画像から QR コードをスキャンして UPI 支払いフローを開始できます。

デバイスに複数の UPI アプリがインストールされている場合、ユーザーには不明確な表現の解消ダイアログが表示されます。その後、ユーザーが選択したアプリで支払いフローが続行されます。
アプリの順序は変更されません。既存の UPI インテント ダイアログと同様に、ユーザーが最も頻繁に使用するアプリが OS によって優先され、最初に表示されます。
Android QR スキャナからの UPI インテントをサポート
このフローから支払いアプリが起動されると、呼び出し元のパッケージ ID は com.google.android.gms に設定されます。この値は変更できません。
決済アプリは、このソースを確認し、このパッケージ ID から開始されたすべての支払いフローを処理して、QR によって開始されたものとして扱う必要があります。また、支払い受取人の PSP にデータを送信するときに、開始モードを QR に設定する必要があります。
ライブ QR コード(カメラを使用)のスキャンから開始された支払いと、QR コード画像(デバイス上の画像)のスキャンから開始された支払いを区別するため、QR スキャナは QR コードのソースを特定するのに役立つインテントのエクストラを渡します。
支払いアプリは、キー com.google.android.gms.UPI_QR_SOURCE
を使用して「intent extra」の値を取得し、次と比較する必要があります。
STATIC_IMAGE
文字列は、ソースが静的画像であることを示します。
LIVE_CAMERA
文字列は、ソースがカメラであることを示します。
キー |
値 |
説明 |
com.google.android.gms.UPI_QR_SOURCE |
STATIC_IMAGE
|
デバイスに保存されている QR コード画像。 |
|
LIVE_CAMERA
|
カメラを使用してライブでキャプチャした QR コードの画像 |
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[null,null,["最終更新日 2025-07-27 UTC。"],[],[],null,["# Android QR scanner with UPI support\n\nAndroid 13 (with backwards compatibility for Android 12) supports UPI\npayment flows by adding a dedicated QR Code scanner that users can access\ndirectly from the corresponding Quick Settings tile. Users can launch\na UPI payment flow by scanning a QR Code either from the live camera or from\na static image.\n\n\nWhen multiple UPI apps are installed on a device, the user is presented\nwith a disambiguation dialog. The payment flow then continues in the app\nselected by the user.\n\nNote that the order of apps is not modified in any manner. Users' most\nfrequently used apps are prioritized by the OS and displayed first, similar to\nthe existing UPI intent dialog.\n\nSupport UPI intents from Android QR scanner\n-------------------------------------------\n\nWhen a payment app is launched via this flow, the calling package ID is set\nas **com.google.android.gms**. This value cannot be altered.\n\nPayment apps need to **verify this source** and handle all the payment\nflows initiated from this package ID to be **treated as initiated by QR** and\n**set the initiation mode to QR when sending data to the payee's PSP**.\n\nTo distinguish between payments initiated from scanning a live QR Code (using\nthe camera) and scanning a QR Code image (photo on device), the QR scanner\npasses an intent **extra** which helps identify the source of the QR Code.\n\nPayment apps need to fetch the value of \"intent **extra** \" with the key\n`com.google.android.gms.UPI_QR_SOURCE`, and then compare with the following:\n\n- `STATIC_IMAGE` string indicates that the source is a static image.\n- `LIVE_CAMERA` string indicates that the source is the camera.\n\n|--------------------------------------|----------------|----------------------------------------------|\n| **Key** | **Value** | **Explanation** |\n| com.google.android.gms.UPI_QR_SOURCE | `STATIC_IMAGE` | QR code image stored on the device. |\n| | `LIVE_CAMERA` | QR code image captured live using the camera |"]]