Permission bugs are some of the hardest Android QA issues to catch, because emulators and real hardware do not always behave the same way when an app asks for camera, location, contacts, or microphone access. If your test matrix is emulator-only, you are likely missing bugs that only show up on physical phones.

Where emulators fall short

Android emulators are great for fast iteration, but they cut corners on permission-adjacent behavior:

What only shows up on real hardware

A few permission behaviors are effectively untestable on an emulator:

The practical QA gap

Most teams do not have a rack of real devices sitting around for every OS version and OEM they need to cover, so permission testing quietly defaults to whatever emulator images are convenient. That is how permission-related bugs slip into production: a runtime prompt that behaves fine on an AOSP emulator but confuses users or crashes on a real Pixel running the current OS build.

Testing against a real device closes that gap without requiring you to own a device farm. You get actual runtime permission prompts, real hardware-backed dialogs, and genuine OEM behavior, not a simulation of it.

What to check on real hardware

DistrictDroid rents real US Android phones with full browser access and a real US SIM, from $30/day or $150/month. Crypto accepted.