QR код содержит просто ссылку.
В манифесте приложения пропишите
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="lknpd.nalog.ru"
android:pathPrefix="/api/v1/receipt"
android:scheme="https" />
</intent-filter>
Здесь вы указываете хост и начало урла. Приложение сканер кр кода обращается к операционной системе с вопросом какие программы могут открыть данную ссылку. В список вариантов будет добавлено и ваше.
void handleIntent(Intent intent){
String action = intent.getAction();
if (action == null) {
showMessage("Ошибка вызова. Нет действия в намерении");
return;
}
Uri uri = null;
if (action.equals(Intent.ACTION_VIEW)) {
uri = intent.getData();
}else if (action.equals(Intent.ACTION_SEND) || action.equals(Intent.ACTION_SENDTO)) {
String stringText = intent.getStringExtra(Intent.EXTRA_TEXT);
if (stringText == null) {
CharSequence textSequence = intent.getCharSequenceExtra(Intent.EXTRA_TEXT);
if (textSequence != null) {
stringText = textSequence.toString();
}
}
if (stringText != null) {
if (stringText.startsWith("http://") || stringText.startsWith("https://")) {
uri = Uri.parse(stringText);
}
}
}
if(uri == null){
showMessage("Ошибка вызова. Ссылка на чек не обнаружена");
return;
}
//теперь самостоятельно разбираете строку урла, чтобы вытащить нужные аргументы для конкретного действия в приложении
receiptId = ReceiptId.fromURI(uri);
if(receiptId == null){
showMessage("Неправильная ссылка на чек");
return;
}
importReceipt();
}
На Вашем сайте урлы можно через htaccess переправить на заглушку с предложением скачать приложение или к обычной странице добавлять банер с предложением открыть в приложении.