How to scan a QR code on iPhone and Android

How to scan a QR code on iPhone, Android, Huawei, older phones, and with VoiceOver or TalkBack — including the URL preview checks that matter.

May 21, 2026 16 min read Linked.Codes
How to scan a QR code on iPhone and Android

To scan a QR code on an iPhone, open the Camera app, point it at the code, and tap the yellow URL banner that pops up. To scan a QR code on most Android phones, do the same thing — Google Lens runs inside the stock Camera app and surfaces a tap-to-open prompt. That covers maybe 80% of phones in active use. The other 20% — older Android, Huawei without Google services, scanning from a printed photo, a banking app that ignores the camera, a screen-reader user who can't see the preview — is where every "how to scan a QR code" guide either gets lazy or gets it wrong.

This post is the full version. The exact gestures for each platform, the spots where Apple and Google quietly disagree, what to do when nothing happens, how VoiceOver and TalkBack hand the result to a blind user, how banking apps scan codes from inside their own camera, and the URL-preview checks that mean the difference between a successful scan and a phishing attempt. The technical baseline for what a QR code actually is lives in its own post — this one is about the gesture from the user's side and the trust signals that decide whether you tap.

The short answer for each device

Device What to open What to do
iPhone (iOS 11+) Camera app Point at code, tap the URL banner
iPad (iPadOS 11+) Camera app Same as iPhone
Android with Google Lens Camera or Google app Point and tap suggestion chip
Android without Lens Install a scanner (Binary Eye is free) Open the app, aim
Huawei (no GMS) Camera or AI Lens Tap shutter button, accept URL
Older phones, no camera support Any free QR app Point and confirm

That's the headline. The details below are where the friction lives.

iPhone — iOS 11 and later

Apple added native QR scanning to the Camera app in iOS 11, released September 2017. Every iPhone from the iPhone 5s onward runs iOS 11 or newer, which means in practice every active iPhone scans QR codes from the stock Camera app with no extra software.

Open the Camera. Point it at the code so the whole code sits inside the viewfinder with a bit of breathing room around the edges. Hold still for half a second while the autofocus locks on. A yellow banner slides down from the top of the screen with a preview of the destination URL and a small icon (a Safari compass for a website, a phone handset for a tel: link, a contact card for a vCard, and so on). Tap the banner. The link opens in whatever app handles that scheme — Safari for https://, Phone for tel:, Mail for mailto:.

Three iPhone-specific behaviours catch people out: If you want a test QR to try each iPhone behaviour against, generate one in the on-platform QR tool and keep it open on a second screen — the lock-screen and Control Centre paths only make sense once you've walked them yourself.

The Code Scanner in Control Centre. Apple ships a dedicated QR scanner that lives in Settings → Control Centre → Code Scanner. Add it, swipe down from the top-right corner, and the scanner opens directly without going through the camera app. It's faster than the Camera app, surfaces a torch toggle, and stays in scan mode if the first attempt fails. Worth enabling on any iPhone you scan codes with often.

Lock-screen scanning. From the lock screen, swipe left to open the camera without unlocking. QR codes scan from there too. The URL banner appears but tapping it requires unlocking — Apple deliberately gates the link-open behind authentication so a stranger pointing your phone at a malicious code can't actually open it.

iOS 16+ live text on a still photo. If someone sends you a screenshot of a QR code, you don't need to print it. Open the image in Photos, long-press the QR, and iOS recognises it and offers the same URL banner. The same works on a paper printout you photographed with your phone earlier.

How to scan a QR code on iPhone vs Android — side by side iPhone Camera vs Android Camera with Lens — same gesture, different chrome iPhone — iOS Camera linked.codes/r/abc yellow URL banner — tap to open Android — Camera with Lens linked.codes/r/abc
Same code, same gesture, different chrome. iOS shows a yellow banner at the top of the camera; Android Lens shows a pill near the shutter. Both reveal the destination URL before opening anything.

Android — Camera plus Google Lens

Android's QR story is messier because there's no single Android. Google added in-camera QR scanning via Google Lens starting with Pixel phones in 2018, and most major Android vendors (Samsung, OnePlus, Xiaomi, Oppo) integrated Lens into their camera apps over the following two years. By Android 12 (2021), QR scanning is a default Camera-app behaviour on every phone shipped with Google Mobile Services.

The gesture: open the Camera app, point at the code, wait for the Lens suggestion chip to appear. The chip usually surfaces near the shutter button and shows a short label ("linked.codes/r/abc"). Tap it. The URL opens in Chrome or the user's default browser.

If the camera doesn't recognise the code:

  1. Check Google Lens explicitly. Either open the Google app and tap the Lens icon in the search bar, or long-press the home button if Assistant is enabled and pick "Lens". Lens scans QR codes from any image — live camera, photo in Gallery, screenshot you just took.
  2. Some camera apps have a Lens toggle. Samsung's camera puts Bixby Vision and Google Lens in the same menu — swipe right from the main mode picker. Xiaomi's MIUI camera has a dedicated "Scan QR code" mode inside More.
  3. Older Android (pre-Android 9) without Lens. Google Play has free scanners. Binary Eye is open source, ad-free, and reads the URL out loud if you turn on accessibility playback. The official "QR & Barcode Scanner" by Gamma Play also works without ads on a paid tier.

The Samsung-specific path worth knowing: Samsung Internet, the default browser on Samsung phones, has a built-in QR scanner in the address bar menu. If you're already in Samsung Internet, you don't need to leave the browser to scan a code printed on another screen.

Huawei without Google services

Huawei phones shipped after May 2019 (the start of the US trade restrictions) don't have Google Mobile Services or Google Lens. They use Huawei's own AI Lens and AppGallery instead.

To scan a QR code on a modern Huawei phone:

  1. Open the Camera and look for the AI Lens icon — usually a small icon at the top of the viewfinder shaped like an eye or a Q. Tap it, then point at the code.
  2. Or use the dedicated scanner: swipe down from the top of the home screen and the Quick Access panel includes a "Scan" shortcut. Tap it and the AI Lens scanner opens directly.
  3. The Huawei Browser also has a QR scanner in its menu — the same address-bar pattern Samsung Internet uses.

The result is the same: a preview of the URL, tap to open. The AI Lens implementation handles QR, barcodes, plant identification, and live translation. It works without any Google account.

Banking and payment apps — when the camera doesn't matter

A different scan path entirely: most banking apps in the EU, UK, India, Australia, and large parts of Asia ship their own QR scanner inside the app, deliberately separate from the system camera. The reason is regulatory and security-driven. A payment QR (SEPA Credit Transfer QR, EPC069-12 specification in Europe; UPI QR in India; PayNow in Singapore) carries structured payment data — IBAN, amount, reference number — that the bank's app validates before authorising the transfer. The system camera doesn't know how to interpret a SEPA QR; it would either ignore it entirely or surface a useless raw text preview.

The flow inside a banking app:

  1. Open the bank app and authenticate (Face ID, fingerprint, PIN).
  2. Find the "Pay" or "Transfer" or "Scan QR" entry — usually a primary tab.
  3. The app's own camera opens. Point at the QR.
  4. The app parses the structured data, pre-fills the payment form, and shows you the recipient, amount, and reference for confirmation.
  5. Authorise the payment with a second authentication step.

This is intentionally a separate path. A payment QR scanned from the system camera that just opened a URL would route money outside the bank's compliance perimeter. The dedicated in-app scanner is the only way structured payment QRs work — and it's the right place to scan any QR printed on an invoice or a bill. We unpacked the specific payload formats in payment QR codes for invoicing, including which fields each region's spec requires.

85%
Approximate share of phones in active use globally that scan QR codes from the stock Camera app without any extra software, drawn from StatCounter mobile-OS share figures combined with platform-version adoption data from Apple and Google developer dashboards.

Scanning from a printed photo or a screen

Three scenarios trip people up, in roughly this order of frequency:

A QR code on someone else's phone screen. Common at events — a friend shows you a calendar event QR, a ticket, a contact card. Both screens lit up under bright stage light shrink the contrast the camera can see. The fix: have the person showing the code bump their screen brightness to maximum, then hold the phone steady at a slight angle so the showing-screen reflection doesn't sit on the showing-screen viewfinder. If it still fails, take a screenshot of the screen and scan from the photo — iOS and Android both scan QR codes inside the Photos/Gallery app.

A photographed paper QR. Take a photo of the paper. Open the photo in your Gallery or Photos. iOS surfaces the URL banner the same way it does for a live camera frame. Android's Google Lens reads QR codes from any image — open Google Lens, pick the photo, tap the suggestion chip.

A printed QR on a curved surface. Coffee cups, bottles, packaging. The decoder corrects for moderate perspective distortion but a sharply curved surface puts modules at angles the decoder can't resolve. The fix: hold the curved surface so the QR area sits as flat as possible relative to the camera, or rotate the object so the QR is at the centre of the visible curve. If the code still won't read, the print is too small or the curve is too tight — that's a design problem, not a scan problem. The six fixes for a QR code not scanning walks through the diagnostic for codes that refuse to read.

The scan gesture is one fraction of a second. The decision after the gesture is where the actual work happens — and where every guide that stops at "tap the banner" leaves you exposed.

Accessibility — VoiceOver and TalkBack

The default scan flow is visual: point the camera, see the banner, tap it. For a blind or low-vision user, the URL banner is invisible. Both Apple and Google built dedicated paths around this.

VoiceOver on iOS. When VoiceOver is on, point the Camera at a QR code and VoiceOver reads out "QR code detected" followed by the destination URL. The yellow banner becomes a focusable element you can swipe to and double-tap to activate. iOS also speaks any text it recognises around the code if you're using Magnifier with Detection Mode enabled — the Magnifier app (Apple's built-in magnifier, accessible from Control Centre or Settings → Accessibility) can be configured to announce QR codes as a detection target alongside people, doors, and text. That's how a blind user can independently scan a code on a flyer or a parking meter without sighted help.

TalkBack on Android. Google Lens integrates with TalkBack — when Lens detects a QR code, TalkBack announces the detection and the destination text. The Lookout app (Google's free accessibility companion for blind users) has a dedicated Documents mode that reads QR codes alongside printed text and product barcodes. Lookout speaks the URL aloud and offers an "open" action via the standard TalkBack gesture.

The accessibility caveat that catches sighted designers off-guard: a long branded URL with random subpath characters is hostile to anyone listening to it spoken aloud. linked.codes/r/abc123 is easy; marketing-promo-summer-2026-final-v2.example.com/r/Xk3pQ9zL is a punishment. Short branded redirects matter twice over for accessibility — they're faster to verify by ear, and they're the only practical way for a blind user to confirm the destination before tapping. The case for branded short links over generic shorteners becomes ten times stronger once you account for screen-reader users.

Accessibility scan path — VoiceOver and TalkBack VoiceOver and TalkBack — the spoken scan path Point camera no visual feedback needed "QR code detected" spoken aloud by VO / TalkBack URL spoken in full double-tap to open The branded-URL test: read your QR's destination URL aloud once. if it takes more than five seconds, your URL is too long for accessibility. Short, branded, predictable redirects pass the ear test.
The accessibility scan flow is identical to the sighted one mechanically. Where it differs: the URL has to survive being spoken aloud. Long opaque URLs fail the ear test even when they pass the eye test.

The URL preview anatomy — what to check before you tap

This is the part most "how to scan" posts skip and the part that decides whether a successful scan is also a safe one. The URL banner that pops up after a scan is your last chance to look at the destination before the browser loads it. Three things to check, in this order:

1. Does the domain match the surface? If the QR is on a Starbucks counter, the URL should be starbucks.com or a known Starbucks short domain. If it's on a parking meter, the URL should be your city's parking-service domain. A QR on a charity donation poster should resolve to a recognised charity domain. A mismatch — the QR says "Park here" and the URL is qr-parking-app-payment.xyz — is the single biggest red flag in QR phishing.

2. Is the domain spelled the way the brand normally spells it? Phishing-side typosquatting plays the same game on QR as it does on email. bank0fameric4.com instead of bankofamerica.com. starbucks-rewards.cn instead of starbucks.com. Phone screens make subtle character substitutions easy to miss; slow down and read the domain character by character.

3. Is there a sticker overlay sign? Look at the physical code, not the screen. If you can see edges of a sticker laid over an underlying printed QR — raised edges, mismatched paper, a tiny corner peeling up — someone has tampered with the original. The full QR phishing playbook covers what to look for in detail.

If any of the three fails the smell test, don't tap the banner. Close the camera and walk away. Nothing has happened yet — the URL hasn't loaded, no script has run, no data has left your phone. The scan itself is harmless; the tap is the irreversible action.

Three trust checks on the URL preview banner — domain match, spelling, sticker tampering — applied to the same scan moment. starbucks.com/order Open in Safari ✓ Domain matches ✓ Spelling is right ✓ No sticker overlay Safe to tap qr-parking-app-pay.xyz Open in browser ✗ Domain mismatch ✗ Surface said "park" ✗ Unfamiliar TLD Walk away bank0famerica.com Open in browser ✗ Zero instead of O ✗ Typosquat pattern ✗ Read slowly Walk away Passing all three Wrong domain Lookalike typosquat
The same preview banner, three outcomes — read the domain like a sentence, not a logo. One sticker-overlay or character substitution is the difference between safe and not.

Build branded short-link QR codes on your own domain so the URL preview reads as you, not a third party.

Try the platform

A device picker — get the exact steps for your phone

Pick your device — get the exact scan steps

iPhone — iOS 15 or newer
    Likely friction

    Pick your device and get the exact gesture, plus the friction point that catches most people on that platform.

    When the scan just won't work

    A QR refusing to scan from a competent phone is almost always one of three things. The code is too small at your scan distance, the contrast is too low for the camera under your current lighting, or there's glare wiping out a strip of modules. We unpacked the six root causes in detail in the QR code not scanning post — the same diagnostic that production designers run before a print job applies in reverse when you're standing in front of a code that won't read.

    The one-minute field fix from the user side: step back to put the whole code in the frame, then step forward until the code fills roughly half the viewfinder. Tap the screen to force a re-focus. If you're indoors under directional light, tilt the surface 15 degrees so the glare patch moves off the code area. If the code is on glossy stock, shadow it with your free hand. Nine times out of ten, one of those three moves brings the URL banner up.

    If none of them work, the code is broken or it's not a real QR code at all. Some "QR codes" you see in the wild are decorative graphics that look like the format but don't actually encode anything readable. There's nothing you can do about those on the scan side.

    A scan-side note worth flagging for anyone choosing between formats: NFC tags do the same job as QR codes but use a chip instead of printed pixels. The user taps the phone to the tag — no camera, no aiming, no preview banner. For trust-critical surfaces (parking meters, transit ticketing, payment terminals) where sticker-tampering is the main attack, NFC tags as an alternative for trust-critical surfaces covers the cost, range, and hardware trade-offs. For most consumer use the QR path remains dominant because every phone has a camera and most still don't have NFC enabled by default. The same proprietary-vs-standard split shows up inside individual platforms — Snapchat's own dotted-ghost Snapcode is unreadable to any camera that isn't the Snap app, which is why picking the right Snapchat QR format for cross-platform print usually means a standard QR pointed at a Snapchat profile URL rather than the closed-loop Snapcode.

    If you're a creator or operator placing QR codes for an audience to scan, the full QR codes documentation walks through the dynamic destinations, contrast defaults, and branded-domain options that make the scan path land cleanly on the other end.

    Why won't my iPhone scan a QR code?

    First check Settings → Camera and confirm Scan QR Codes is on. If the toggle is on and the Camera app still doesn't recognise the code, the most common cause is distance — you're either too close (the code overflows the frame) or too far (the modules are too small at the sensor). Pull the phone back until the whole code is visible with a bit of margin, then step forward to fill half the frame.

    Do I need an app to scan QR codes?

    Not on iPhone (iOS 11 or newer) or modern Android with Google Lens — the stock Camera app handles QR codes natively. Older Android phones without Lens need a third-party scanner; Binary Eye is free and open source. Huawei phones without Google services use the built-in AI Lens.

    How do I scan a QR code from a screenshot or saved photo?

    iOS 15 and newer: open the image in Photos, long-press the QR, the URL banner appears. Android: open Google Lens, pick the image from your gallery, tap the suggestion. On a desktop, drop the image into webqr.com or any browser-based QR decoder.

    Can I scan a QR code without unlocking my phone?

    You can scan from the lock screen on both iPhone and Android — the Camera app opens without unlocking. But tapping the URL banner to actually open the link requires unlocking. This is deliberate, so a stranger can't open malicious links by pointing your phone at a hostile code.

    How can a blind user scan a QR code?

    iOS: VoiceOver announces QR detection and reads the destination URL aloud — the user double-taps to open. Apple's Magnifier app with Detection Mode adds QR codes as a focusable object alongside text, doors, and people. Android: TalkBack with Google Lens does the same. Google Lookout is the dedicated accessibility companion that handles QR codes alongside product barcodes and printed documents.

    Why does my banking app have its own QR scanner?

    Payment QRs carry structured financial data (IBAN, amount, reference) that the bank's app validates before authorising a transfer. The system camera can't parse those payloads — it would either show raw text or open a URL that bypasses the bank's compliance checks. The dedicated in-app scanner is the only safe route for invoice and bill-payment QRs.

    How do I check if a QR code is safe before tapping?

    Three checks: does the domain in the preview match the brand on the physical surface, is the domain spelled correctly (watch for typosquatted variants), and does the printed code show any signs of sticker overlay (raised edges, mismatched paper). If any of the three fails, close the camera without tapping. The scan itself is harmless; only the tap loads the URL.

    Sourcesshow citations

    Try it on your own domain

    Branded short links and dynamic QR codes, on your subdomain or your own domain. One-time purchase, no per-click fees.