What it does
The hardware a canvas app can reach on a phone or tablet: camera, barcode scanning, GPS, compass and accelerometer. Most of it surfaces as Power Fx signals — values that change on their own and recalculate any formula that depends on them — with barcode reading exposed as a dedicated control instead.
Key facts
Locationreturns latitude, longitude and altitude, derived from GPS plus cell and IP information.Compass.Headingreturns 0–360 degrees from magnetic north.Accelerationreturns X, Y and Z in g units.AccelerationandCompassreturn real values only in a native player. In the browser, including Studio, they return zero, so you can't test them at your desk.Locationrecalculates continuously while a screen depends on it, which drains battery.EnableandDisableturn it on and off, and the platform switches it off automatically when the visible screen no longer references it.- The barcode reader control opens the native scanner on Android, iOS and Windows. It doesn't scan in a web browser, and it isn't supported in Teams mobile. Other platforms show a warning that some app features won't work.
- iOS and Android support three scanning modes — automatically scan, select to scan, and scan multiple. Windows always automatically scans.
- Symbology support differs by platform. QR, Codabar, Code 128, Code 39, EAN and UPC work everywhere; Data Matrix, Aztec, Code 93, ITF, PDF 417, Databar and Micro QR are iOS and Android only. GS1-DWCode and MSI aren't supported anywhere.
- The barcode reader control doesn't support
Select(). The documented workaround is a transparent reader control layered over whatever you wanted the user to press. Connection.Meteredtells you whether the device is on a metered connection, which is the hook for throttling image uploads over cellular.- Permissions are consent-based and prompted the first time the user runs the app, not at install.
When to use / skip
Camera and barcode are the two that actually change a business case — scanning an asset tag instead of typing it is the difference between a mobile app being used and being abandoned. Location is worth wiring in for proof-of-attendance and asset capture, but be deliberate about it because it costs battery. Compass and accelerometer are rarely more than a novelty outside genuinely specialised field work; if someone asks for a shake gesture, ask what problem it solves. Don't design any of it into an app that will primarily run in a browser, because none of it works there.
Configuration decisions
- Whether the barcode symbologies you need are supported on the platforms your users are actually carrying, since the iOS/Android list is longer than the Windows one.
- Which scanning mode fits the task — single scan for a lookup, scan multiple for a stock count — and whether beep and vibrate feedback is appropriate in the user's environment.
- Whether location is enabled continuously or turned on and off around the moment you need a fix.
- What happens when permission is refused, because it will be, and the app needs a manual-entry fallback either way.
- Whether image capture is throttled or queued when
Connection.Meteredis true.
Gotchas
- Testing device capabilities in Studio proves nothing. Compass and accelerometer return zeros, and the barcode reader won't open. Everything has to be tested on the target hardware.
- A user who declines the camera permission on first run has no obvious route back — they end up in OS settings. Handle the refusal in the app rather than assuming consent.
- Barcode scanning quality is a genuine trade-off. High quality reads small codes and slows the app down; automatic is the default for a reason.
- Wrapped offline-enabled apps only show image thumbnails, not full image views. That surprises people who built a photo-capture workflow.
Consultant notes
- Get a real scan test done early with the client's actual labels, printed on the actual printer, on the actual phone. Barcode projects fail on print quality and symbology far more often than on app logic.
- Accessibility matters here more than elsewhere. Always pair a scanner with a text input — some users can't point a camera, and Microsoft's own accessibility guidance says the same.
- Battery is a support issue, not a technical one. If the app leaves location on all day, the client's field team will report it as "the app kills my phone" and you'll be defending a design decision months later.
Worth a look after each mobile player release, since barcode symbology support and scanning modes have moved before.