Używam com.google.android.gms.vision.barcode.BarcodeDetector
, aby czytać kody QR. Problem polega na tym, że kody te zawierają surowe dane binarne; bez numerów telefonów, bez adresów URL, bez punktów kontaktowych ... Nie mogę zmienić tych kodów QR, ponieważ są one generowane w innej aplikacji.API kodów kreskowych Android Vision - odczyt niestandardowego kodu QR z danymi binarnymi
Po zeskanowaniu tych kodów QR za pomocą interfejsu API Android Barcode, wynikowy obiekt Barcode
nie pozwala mi uzyskać dostępu do nieprzetworzonych danych, chociaż musi o tym wiedzieć!
Otrzymuję tylko komunikat "Unknown encoding"
zarówno w domenie rawValue
, jak i displayValue
.
Posiadanie właściwości byte[]
zamiast dwóch właściwości String
miałoby więcej sensu, ponieważ kody QR mogą przenosić dane ogólne.
Nie widzę sensu ukrywania macierzy bajtów danych przed programistami. Czy mogę jakoś przedłużyć klasę BarcodeDetector
lub klasę Barcode
, aby uzyskać to, czego potrzebuję?
Edit:
To jest absolutnie poprawny kod QR, które nie mogą być odczytane przez Vision API, chociaż nosi 1024 bajtów danych:
QR Codes - raw binary data jest powiązane, ale to nie rozwiązuje mojego problemu.
To bardzo mgliste pytanie ... Ja też używam '... vision.barcode ...' api, w kodzie produkcyjnym. Czy możesz udostępnić przykład QR? – Algar
@Algar Sure, zobacz moją edycję. – vojta
Przepraszam, miałem nadzieję, że mogę po prostu wyprowadzić (rzeczywiste) surowe wartości ze źródła, ale nie mam szczęścia. Sądzę, że są wartości 'null' lub takie w danych, które powodują, że kodowanie się nie udaje. Wydaje się niezwykle ułomny, że dane surowe nie są dostępne, ale .. Spróbuj zgłoszenia problemu [tutaj] (https://github.com/googlesamples/android-vision/issues). :( – Algar