У меня проблема, которая кажется неразрешимой. Проблема заключается в генерации QR-кода, который будет вызывать один конкретный номер. Формат номера составляет * 103 * 14-значный номер активации № и считывание его с помощью приложения QR-кода Android вызывает отсутствие символа-хэша (#) в форме вызова. Я googled это и вывод, что андроид API по какой-то причине препятствует чтению хеш-знак из QR-кода. Обходной способ для ОС Android использует кодировку URI для хеша, которая составляет% 23, и в этом случае она работает как шарм. Но чтение того же QR-кода с приложением iOS QRReader не конвертирует% 23 в хеш, а просто показывает 23. Есть ли решение, которое охватывает все эти проблемы? Заранее спасибо!
Вам нужно дважды закодировать хэш, поэтому знак процента также закодирован.
Таким образом, # становится% 2523
Сканируйте этот QR-код, и ваш номер телефона должен показывать * # 67 #
См. Этот отчет об ошибке Zxing
Возможно, вам нужно закодировать String перед передачей Intent:
String qrCode = "*103*14#";
String uri = Uri.encode("tel:" + qrCode);
Intent intent = new Intent(Intent.ACTION_CALL, uri);