Я пытаюсь читать пользовательские коды QR с моим приложением, используя Zxing.
Я добавил библиотеку в мой код. Теперь я могу вызвать функцию сканирования Zxing, и она запускает камеру, читает код qr.
Но я также хочу изменить строку намерений, чтобы предотвратить конфликт с исходным приложением сканера штрих-кода, установленным на телефоне.
Поэтому я изменил фильтр намерений в файле манифеста следующим образом:
from:
<action android:name="com.google.zxing.client.android.SCAN"/>
to:
<action android:name="com.google.zxing.client.android.SCANX"/>
А из своей деятельности я звоню:
if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, 1);
} else {
Toast.makeText(ctx, "test1",Toast.LENGTH_LONG).show();
Intent intent = new Intent("com.google.zxing.client.android.SCANX");
intent.putExtra("SCAN_FORMATS", "QR_CODE_MODE");
startActivityForResult(intent, IntentIntegrator.REQUEST_CODE);
//startActivityForResult(intent, 0);
}
Тем не менее, он остается на странице результатов с такими опциями, как «поделиться по электронной почте», «поделиться через смс», «поиск» и т. Д. Я не хочу видеть эту страницу, я хочу получить код непосредственно в результат.
И если я верну строку намерений обратно в исходное состояние:
<action android:name="com.google.zxing.client.android.SCAN"/>
это работает.
Но я действительно хочу предотвратить конфликт и необходимость выбора пользователем приложения для сканирования. Как мне этого добиться?
спасибо.