Звонок по QR-коду

1

У меня проблема, которая кажется неразрешимой. Проблема заключается в генерации QR-кода, который будет вызывать один конкретный номер. Формат номера составляет * 103 * 14-значный номер активации № и считывание его с помощью приложения QR-кода Android вызывает отсутствие символа-хэша (#) в форме вызова. Я googled это и вывод, что андроид API по какой-то причине препятствует чтению хеш-знак из QR-кода. Обходной способ для ОС Android использует кодировку URI для хеша, которая составляет% 23, и в этом случае она работает как шарм. Но чтение того же QR-кода с приложением iOS QRReader не конвертирует% 23 в хеш, а просто показывает 23. Есть ли решение, которое охватывает все эти проблемы? Заранее спасибо!

  • 0
    Какую библиотеку QR-декодирования вы используете? Вы уверены, что не теряете его, когда помещаете в Intent?
  • 0
    Приложение, которое производит QR-код, является своего рода черным ящиком, поэтому мы не знаем, какая библиотека используется. Но мы попытались прочитать его с помощью нескольких различных считывателей QR-кода, и необработанные данные, которые читаются, показывают знак хеш-функции. Изменить: Мы не намерены писать наше собственное приложение для декодирования QR-кода, все, что мы хотим, это чтобы QR-код читался одинаково на всех платформах и в приложениях для чтения QR-кодов. (или почти все)
Теги:
iphone
qr-code

2 ответа

2
Лучший ответ

Вам нужно дважды закодировать хэш, поэтому знак процента также закодирован.

Таким образом, # становится% 2523

Сканируйте этот QR-код, и ваш номер телефона должен показывать * # 67 #

Изображение 174551

См. Этот отчет об ошибке Zxing

  • 0
    Спасибо, мы пробовали это раньше, но на iOs это будет * 236723 ... очевидно, не то, что мы хотели
  • 0
    Похоже, что это ошибка в QRReader - возможно, стоит сообщить об этом им.
0

Возможно, вам нужно закодировать String перед передачей Intent:

String qrCode = "*103*14#";
String uri = Uri.encode("tel:" + qrCode);
Intent intent = new Intent(Intent.ACTION_CALL, uri);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню