Samsung galaxy s7 navaden qr skener. Kako skenirati kodo QR z iPhonom

Poleg aplikacij in iger za družabna omrežja ne škodi imeti na pametnem telefonu tudi programe, ki so uporabni v vsakdanjem življenju. Zdaj QR kode najdemo skoraj povsod: na mestnih ulicah, embalaži izdelkov in vizitkah. Za njihovo branje seveda potrebujete posebno programsko opremo. V nadaljevanju bomo obravnavali pet najboljših rešitev za to nalogo.

QR Droid se razlikuje predvsem po prijetnem in, kar je pomembno, razumljivem vmesniku. Aplikacija je že dolgo poznana med uporabniki naprav Android. Ko ga zaženete, lahko takoj skenirate zahtevano kodo. Če je vseboval povezavo do spletne strani, se bo samodejno odprl vgrajeni brskalnik. Lahko pa to onemogočite v nastavitvah ali pa nastavite svojo različico kot privzeti brskalnik. Zanimivo je tudi, da lahko kar v programu ustvarite svojo kodo QR s potrebnimi informacijami.

2. Čitalnik kod QR

Če si ne želite komplicirati življenja in iščete preprost skener, potem je bralnik QR kode odlična rešitev. Na voljo je le kamera (izberete lahko tudi že pripravljeno sliko iz galerije), zgodovina skeniranih QR kod in gumb za bliskavico, nič več.

3. BIDI

Aplikacija BIDI je v mnogih pogledih podobna QR Droidu. Tukaj imamo odlične možnosti ne le za običajno prepoznavanje QR kod, ampak tudi za ustvarjanje lastnih. Na primer vizitke. Zelo udobno. Obstajajo posebna ločila za telefonsko številko, naslov, e-pošto itd. Nato lahko naredite potrebne spremembe v katerem koli polju.

4.Neo Reader

Neo Reader je morda ena najmočnejših rešitev, saj vam omogoča branje informacij ne samo iz QR kod, ampak tudi iz črtnih kod. Tako kot v trgovini: če aplikacija ne prepozna kode, lahko ročno vnesete številke pod njo. Obstaja tudi možnost vklopa ali izklopa zvoka ter povezava z lokacijo. Edina stvar, ki je nenavadna, je, da ustvarjanje lastnih QR kod neposredno v programu ni zagotovljeno. Namesto tega je na voljo hitra povezava do zadevnega spletnega mesta.

5. QR čitalnik

Prva stvar, ki pritegne pozornost po lansiranju, je premikajoča se rdeča črta. Nisem prepričan, ali igrajo kakšno vlogo (prej je le dekorativni element), vendar izgleda zanimivo. Še ena stvar: aplikacija, sodeč po lokaciji sistemskih gumbov, deluje v vodoravnem načinu, upoštevajte to (čeprav je v načinu branja vsa vsebina nameščena navpično). Meni ima zgodovino skeniranj in zaznamkov. Ustvarite lahko lastne kode QR.

Kateri čitalnik kod QR uporabljate?

Glede na AndroidPit

Ustvaril sem aplikacijo, ki lahko skenira kodo QR. Deluje dobro z vsemi napravami Android, razen Samsung Galaxy S4.
Aplikacija ne skenira kode QR pri uporabi naprave Galaxy s4.
Zdaj, ko ta Galaxy s4 uporablja Android 4.2.2, sem svojo aplikacijo preizkusil tudi na drugih napravah, ki imajo enako različico Androida (4.2.2) kot Nexus-4, in deluje odlično.
Ali obstaja kakšna druga strojna oprema, ki se uporablja za skeniranje kode QR v Galaxy s4?
Potrebujem pomoč pri tej čudni težavi!

Spodaj je koda, ki sem jo uporabil v svoji aplikaciji.

CameraManager.java

/** * Ta objekt ovije storitveni objekt Camera in pričakuje, da bo edini, ki se pogovarja z njim. Izvedba * zajema korake, potrebne za zajemanje slik v velikosti predogleda, ki se uporabljajo za * tako predogled kot dekodiranje. * * @avtor [e-pošta zaščitena] (Daniel Switkin) */ javni končni razred CameraManager ( zasebni statični končni niz TAG = CameraManager.class.getSimpleName(); zasebni statični končni int MIN_FRAME_WIDTH = 240; zasebni statični končni int MIN_FRAME_HEIGHT = 240; zasebni statični končni int MAX_FRAME_WIDTH = 480; zasebni static final int MAX_FRAME_HEIGHT = 360; private static CameraManager cameraManager; static final int SDK_INT; // Kasneje lahko uporabimo Build.VERSION.SDK_INT static ( int sdkInt; poskusi ( sdkInt = Integer.parseInt(Build.VERSION.SDK); ) catch (NumberFormatException nfe) ( // Samo zaradi varnosti sdkInt = 10000; ) SDK_INT = sdkInt; ) zasebni končni kontekstualni kontekst; zasebni končni CameraConfigurationManager configManager; zasebna kamera kamere; zasebni Rect framingRect; zasebni Rect framingRectInPreview; zasebni Boolean inicializiran; zasebni Boolean predogled ; private boolean reverseImage; private final boolean useOneShotPreviewCallback; /** * Tukaj so dostavljeni okvirji predogleda, ki jih posredujemo registriranemu upravljavcu. Ne pozabite * počistiti upravljalnika, da bo prejel samo eno sporočilo. */ private final PreviewCallback previewCallback; /** Povratni klici samodejnega ostrenja prispejo sem in so poslani upravljavcu, ki jih je zahteval. */ zasebni končni AutoFocusCallback autoFocusCallback; /** * Inicializira ta statični objekt s kontekstom klicne dejavnosti. * * @param context Dejavnost, ki želi uporabiti kamero. */ public static void init(Context context) ( if (cameraManager == null) ( cameraManager = new CameraManager(context); ) ) /** * Dobi enojni primerek CameraManager. * * @return Sklic na posamezen element CameraManager. */ public static CameraManager get() ( return cameraManager; ) private CameraManager(Context context) ( this.context = context; this.configManager = new CameraConfigurationManager(context); // Camera.setOneShotPreviewCallback() ima pogoj tekmovanja v Cupcakeu, zato uporabljamo starejši // Camera.setPreviewCallback() na 1.5 in starejših. zmanjkalo pomnilnika. SDK_INT ne moremo uporabiti, ker je bil uveden v Donut SDK. useOneShotPreviewCallback = Integer.parseInt(Build.VERSION.SDK) > 3 ; // 3 = Cupcake previewCallback = new PreviewCallback(configManager, useOneShotPreviewCallback); autoFocusCallback = new AutoFocusCallback(); ) /** * Odpre gonilnik kamere in inicializira parametre strojne opreme. * * @param holder Površinski objekt, v katerega bo kamera narisala okvirje za predogled. * @throws IOException Označuje, da se gonilnik kamere ni uspel odpreti. */ public void openDriver(SurfaceHolder holder) vrže IOException ( if (camera == null) ( camera = Camera.open(); if (camera == null) ( throw new IOException(); )) camera.setPreviewDisplay(holder) ; if (!initialized) ( initialized = true; configManager.initFromCameraParameters(camera); ) configManager.setDesiredCameraParameters(camera); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); reverseImage = prefs.getBoolean(PreferencesActivity.KEY_REVERSE_IMAGE, napačno); če (prefs.getBoolean(PreferencesActivity.KEY_FRONT_LIGHT, false)) ( FlashlightManager.enableFlashlight(); ) ) /** * Zapre gonilnik kamere, če je še v uporabi. */ public void closeDriver() ( if (camera != null) ( FlashlightManager.disableFlashlight(); camera.release(); camera = null; // Te počistite vsakič, ko zapremo kamero, tako da morebitno skeniranje rect // zahtevano z namenom je pozabljeno.framingRect = null; framingRectInPreview = null; ) ) /** * Od strojne opreme kamere zahteva, da začne risati okvirje predogleda na zaslon. */ public void startPreview() ( if (camera != null && !previewing) ( camera.startPreview(); previewing = true; ) ) /** * Kameri pove, naj preneha risati okvirje predogleda. */ public void stopPreview() ( if (camera != null && predogled) ( if (!useOneShotPreviewCallback) (camera.setPreviewCallback(null); ) camera.stopPreview(); previewCallback.setHandler(null, 0); autoFocusCallback.setHandler (null, 0); previewing = false; ) ) /** * Posamezen okvir za predogled bo vrnjen priloženemu upravljalniku. Podatki bodo prispeli kot bajt * v polje message.obj, s širino in višino, kodirano kot message.arg1 oziroma message.arg2, *. * * @param handler Upravljavec za pošiljanje sporočila. * @param message Polje sporočila, ki bo poslano. */ public void requestPreviewFrame(Handler handler, int message) ( if (camera != null && previewing) ( previewCallback.setHandler(handler, message); if (useOneShotPreviewCallback) (camera.setOneShotPreviewCallback(previewCallback); ) else (camera.setPreviewCallback (previewCallback); ) ) ) /** * Zahteva, da strojna oprema kamere izvede samodejno ostrenje. * * @param handler Handler za obvestilo, ko se samodejno ostrenje zaključi. * @param message Sporočilo za dostavo. */ public void requestAutoFocus(Handler handler, int message) ( if (camera != null && previewing) ( autoFocusCallback.setHandler(handler, message); //Log.d(TAG, "Requesting auto-focus callback"); kamera .autoFocus(autoFocusCallback); ) ) /** * Izračuna okvirno pravokotnico, ki bi jo moral narisati uporabniški vmesnik, da bi uporabniku pokazal, kam naj * postavi črtno kodo. Ta cilj pomaga pri poravnavi in ​​prisili uporabnika, da drži napravo * dovolj daleč, da zagotovi, da bo slika izostrena. * * @return Pravokotnik za risanje na zaslonu v okenskih koordinatah. */ public Rect getFramingRect() ( if (framingRect == null) ( if (camera == null) ( return null; ) Point screenResolution = configManager.getScreenResolution(); int width = screenResolution.x * 3 / 4; if ( premer< MIN_FRAME_WIDTH) { width = MIN_FRAME_WIDTH; } else if (width >MAX_FRAME_WIDTH) ( širina = MAX_FRAME_WIDTH; ) int višina = screenResolution.y * 3 / 4; če (višina< MIN_FRAME_HEIGHT) { height = MIN_FRAME_HEIGHT; } else if (height > MAX_FRAME_HEIGHT) ( višina = MAX_FRAME_HEIGHT; ) int leftOffset = (screenResolution.x - širina) / 2; int topOffset = (screenResolution.y - višina) / 2; framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); Log.d(TAG, "Izračunana okvirna pravokotnica: " + framingRect); ) vrni okvirjanjeRect; ) /** * Kot (@link #getFramingRect), vendar so koordinate glede na okvir predogleda, * ne uporabniški vmesnik/zaslon. */ public Rect getFramingRectInPreview() ( if (framingRectInPreview == null) ( Rect rect = new Rect(getFramingRect()); Point cameraResolution = configManager.getCameraResolution(); Point screenResolution = configManager.getScreenResolution(); /* posodobljeno, da omogoča za pokončno namesto ležeče rect.left = rect.left * cameraResolution.y / screenResolution.x; rect.right = rect.right * cameraResolution.y / screenResolution.x; rect.top = rect.top * cameraResolution.x / screenResolution .y; rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y; */ rect.left = rect.left * cameraResolution.x / screenResolution.x; rect.right = rect.right * cameraResolution.x / screenResolution .x; rect.top = rect.top * cameraResolution.y / screenResolution.y; rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y; framingRectInPreview = rect; ) return framingRectInPreview; ) /** * Omogoča tretjo programi strank, da določijo dimenzije pravokotnika za skeniranje, namesto da bi jih določili * samodejno glede na ločljivost zaslona. * * @param width Širina v slikovnih pikah za skeniranje. * @param height Višina v slikovnih pikah za skeniranje. */ public void setManualFramingRect(int width, int height) ( Point screenResolution = configManager.getScreenResolution(); if (width > screenResolution.x) ( width = screenResolution.x; ) if (height > screenResolution.y) ( height = screenResolution .y; ) int leftOffset = (screenResolution.x - širina) / 2; int topOffset = (screenResolution.y - višina) / 2; framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); Log. d(TAG, "Izračunana ročna pravokotnost kadriranja: " + framingRect); framingRectInPreview = null; ) /** * Tovarniška metoda za izdelavo ustreznega predmeta LuminanceSource na podlagi formata * medpomnilnikov predogleda, kot je opisano v Camera.Parameters. * * Podatki @param Okvir predogleda. * @param width Širina slike. * @param height Višina slike. * @return Primerek PlanarYUVLuminanceSource. */ public PlanarYUVLuminanceSource buildLuminanceSource(byte data, int width, int height) ( Rect rect = getFramingRectInPreview(); int previewFormat = configManager.getPreviewFormat(); String previewFormatString = configManager.getPreviewFormatString(); switch (previewFormat) ( // To je standardni format za Android, ki ga OBVEZNO podpirajo vse naprave. // V teoriji je to edini, za katerega bi nas moralo skrbeti. case PixelFormat.YCbCr_420_SP: // Ta format še nikoli ni bil viden v divjini, vendar je združljiv, ker nas skrbi // samo kanal Y, zato ga dovolite. case PixelFormat.YCbCr_422_SP: vrni nov PlanarYUVLuminanceSource(podatki, širina, višina, rect.left, rect.top, rect.width(), rect.height(), reverseImage); privzeto: // Samsung Moment nepravilno uporablja to različico namesto različice "sp". // Na srečo ima tudi vse podatke Y vnaprej, tako da jih lahko preberemo. if ("yuv420p".equals(previewFormatString)) ( return new PlanarYUVLuminanceSource(data, width, height, rect.left, rect.top, rect.width(), rect.height(), reverseImage); ) ) vrzi novo IllegalArgumentException ("Nepodprt format slike: " + previewFormat + "/" + previewFormatString); ) )

PreviewCallback.java

Končni razred PreviewCallback izvaja Camera.PreviewCallback ( zasebni statični končni niz TAG = PreviewCallback.class.getSimpleName(); zasebni končni CameraConfigurationManager configManager; zasebni končni logični useOneShotPreviewCallback; zasebni Handler previewHandler; zasebni int previewMessage; PreviewCallback(CameraConfigurationManager configManager, boole an useOneShotPreviewCallback) (to .configManager = configManager; this.useOneShotPreviewCallback = useOneShotPreviewCallback; ) void setHandler(Handler previewHandler, int previewMessage) ( this.previewHandler = previewHandler; this.previewMessage = previewMessage; ) public void onPreviewFrame(byte data, Camera camera) ( Point cameraResolution = configMa nager .getCameraResolution(); if (!useOneShotPreviewCallback) ( camera.setPreviewCallback(null); ) if (previewHandler != null) ( Message message = previewHandler.obtainMessage(previewMessage, cameraResolution.x, cameraResolution.y, data); message.sendToTarget (); previewHandler = null; ) else ( Log.d(TAG, "Imam predogled povratnega klica, vendar zanj ni obravnave"); ) ) )

Koda QR je posebna matrična koda, razvita že leta 1994, ki je postala splošno znana šele pred nekaj leti. Pod kodo QR se lahko skrivajo različne informacije: povezava do spletne strani, slika, elektronska vizitka itd. Danes si bomo ogledali metode za prepoznavanje QR kod na iPhoneu.

Na iPhonu obstajata dva načina skeniranja kode QR: običajen način in uporaba posebnih aplikacij.

1. način: Aplikacija kamere

V iOS 11 se je pojavila ena zelo zanimiva funkcija: zdaj lahko aplikacija Camera samodejno išče in prepozna kode QR. Prepričati se morate le, da je ustrezna nastavitev omogočena v nastavitvah pametnega telefona.

2. način: čitalnik QRS

Aplikacije za skeniranje tretjih oseb, ki se distribuirajo v App Store, ponujajo več možnosti kot običajna orodja iPhone. Poleg tega, če ste lastnik zastarelega modela pametnega telefona Apple, potem verjetno nimate možnosti nadgradnje na enajsto različico. Takšne aplikacije so torej edini način, da telefonu omogočite funkcijo skeniranja.

3. način: Kaspersky QR Scanner

Vse povezave, skrite pod QR kodami, niso varne. Nekateri od njih vodijo do zlonamernih virov in virov lažnega predstavljanja, ki lahko resno škodijo vaši napravi in ​​vaši zasebnosti. In da bi se zaščitili pred morebitno grožnjo, je priporočljiva uporaba aplikacije Kaspersky QR Scanner, ki ni samo skener, ampak tudi zaščitno orodje pred zlonamernimi spletnimi mesti.

Skeniranje QR kod na pametnih telefonih Android je lažje kot fotografiranje. Vse, kar potrebujete, je:

  • pametni telefon ali tablica s kamero;
  • Internet.

Vse bom razložil čim bolj preprosto in dal praktično lekcijo. Tukaj, ne da bi se oddaljili od članka. Z istimi navodili lahko skenirate tudi črtne kode.

»Vmesnik mojega pametnega telefona se lahko razlikuje od vašega zaradi druge teme in različice Androida. Razlike ne vplivajo na postopek namestitve in uporabe čitalnika kode QR.”

Najprej potrebujete skener kode QR. Našel sem najlažjega. Ima manj nadležnih oglasov in skenira - kar potrebujete. Namestitev je zelo enostavna. Uporaba je še lažja.

  1. Za začetek pojdite na Google Play Market. In v vrstici, podčrtani z rdečo, pišemo: "skener qr kode" ali bolje "pametni skener in generator qr". Kliknemo na ikono za iskanje ali samo na spustno ponudbo, ki nam ustreza.


Poleg tega lahko pri nas prenesete še eno odlično aplikacijo za skeniranje -

Kako skenirati kodo iz shranjene slike?

Kodo QR lahko prepoznate tudi iz slike na internetu s pomočjo posebnih spletnih mest. Izbral sem qrrd.ru, ker je to edina stran, ki sem jo naložil v manj kot 10 sekundah in je imela bolj ali manj prijeten vmesnik.

Kako ga uporabljati? Najprej gremo na spletno mesto: qrrd.ru ali neposredno na qrrd.ru/read. Vidimo naslednje:

Z zeleno je obkrožen meni spletnega mesta, ki navaja vse, kar vam lahko pomaga. V našem primeru izberite "Prepoznaj kodo QR".

Naslednja stran se odpre z velikim gumbom »+Izberi datoteke«. Kliknemo nanj. Po tem se na dnu prikažejo možnosti, kot je »izberi datoteke«. Tukaj lahko bodisi takoj posnamete fotografijo in jo pošljete. Ali kliknite na dokumente in izberite fotografijo, ki je že na telefonu. Šel sem zadnjo pot.

Tukaj sem izbral zavihek s slikami, kliknil na mapo, kjer so shranjene slike na mojem telefonu in kliknil na sliko s QR kodo, isto, kot je bila že prej v članku.

Potem je na vrsti spletno mesto. Samodejno naloži fotografijo ali sliko k sebi, nato pa takoj prepozna in prikaže rezultat.

Pripravljen!.

Zakaj bi sploh moral skenirati kode QR?

Lahko vsebujejo koristne informacije. Verjetnost za to je majhna, vendar lahko obstaja. Poleg tega se QR kode pogosto uporabljajo v muzejih, da ne bi postavljali ogromnih napisov s kopico informacij, ampak preprosto uporabite majhno QR kodo in dajte vsakemu možnost, da stopi stran in prebere o razstavi na svojem telefonu. Vse je preprosto in priročno. Zato jih je Denso Wave izumil.

Koda QR je odlično orodje za zalogo. Lahko na primer vsebuje kodo, ki jo je treba pokazati prodajalcu, da prejme popust. Prijav je ogromno. Uživajte!



Povezani članki: