Запуск моего приложения после сканирования QR-кода - PullRequest
0 голосов
/ 06 марта 2020

Я реализовал приложение, которое считывает QR-код и отображает результат в модальном режиме (затем перенаправляет на WebView, если результат является URL). Это работает хорошо. Но теперь я хотел бы сделать следующее: когда QR-код сканируется камерой моего устройства (не моего приложения), он запускает мое приложение и отображает результат в моем модальном режиме.

Я использовал intent-filter для этого ... И он тоже работает хорошо! Но проблема в том, что он запускает мое приложение не только после сканирования QR-кода. Он запускает мое приложение, например, когда я нажимаю на URL на моем телефоне. И это не то поведение, которое я хочу. Мне бы хотелось, чтобы мое приложение запускалось только тогда, когда в QR-коде был обнаружен URL. Возможно ли это?

Вот мой манифест

 <activity
            android:launchMode="singleTask"
            android:name=".MainActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:scheme="http" />
                <data android:scheme="https" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.nfc.action.TECH_DISCOVERED" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>


                <data android:scheme="http" android:host="*"/>
                <data android:scheme="https" android:host="*"/>
            </intent-filter>

            <meta-data
                android:name="android.nfc.action.TECH_DISCOVERED"
                android:resource="@xml/nfc_tech_filter" />
        </activity>

1 Ответ

0 голосов
/ 06 марта 2020

Чтобы открыть ваше приложение только для QR-кода, вам нужно указать собственную схему данных для вашего приложения вместо http и https:

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>

    <data android:scheme="myCustomSchemeName"/>
</intent-filter>

Затем откроются QR-коды с myCustomSchemeName://openSomething?param=42 в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...