Access at a glance
The chart below counts the 39 capabilities discussed in this guide. “Available” means an ordinary app can use a public API after the expected permission request. “Limited” covers hardware-dependent readings, approximate measurements, or APIs with meaningful restrictions.
This is an access comparison, not a judgment about sensor quality. A current iPhone may have excellent hardware even when Apple does not expose a particular raw reading to App Store apps.
Motion and position
This is the most evenly matched category. Both systems can deliver location, heading, speed, motion, orientation, and step-related information. The app should show accuracy alongside every measurement, because a precise-looking number can still be noisy or stale.
| Reading | Android | iPhone | What the app could show |
|---|---|---|---|
| Latitude and longitude | Available | Available | Coordinates, timestamp, and horizontal accuracy |
| GPS elevation | Available | Available | Altitude above sea level with vertical accuracy |
| Barometric elevation | LimitedRequires a pressure sensor | LimitedRequires a supported model | Relative climb or descent; best after calibration |
| Compass direction | Available | Available | Magnetic heading and, with location, true heading |
| Speed and course | Available | Available | Travel speed, direction, and location accuracy |
| Accelerometer | Available | Available | Acceleration on the X, Y, and Z axes |
| Gyroscope | Available | Available | Rotation rate around three axes |
| Device orientation | Available | Available | Pitch, roll, yaw, or a rotation vector |
| Magnetic field | Available | Available | Raw field strength and compass-related values |
| Steps and activity | Available | Available | Steps, estimated distance, and walking/running state |
Location, motion, and fitness permissions are separate on both platforms. Background collection also requires additional justification and can be restricted.
Environmental readings
Phones are not weather stations. Pressure is common enough to be useful, but genuine room-temperature and humidity sensors are rare. A warm phone can also distort any temperature reading located inside the device.
Weather temperature should normally come from a weather service using the phone’s location—not from the phone itself.
| Reading | Android | iPhone | Important limitation |
|---|---|---|---|
| Air pressure | LimitedBarometer required | LimitedSupported hardware required | Useful for relative altitude and pressure trends |
| Ambient light | LimitedSensor availability varies | Not availableNo general public lux API | Android may report illumination in lux |
| Proximity to face or object | LimitedOften only near/far | AvailableNear/far proximity state | Not a dependable measuring tape |
| Room temperature | LimitedVery rare hardware | Not available | Most phones cannot directly measure room temperature |
| Humidity | LimitedExtremely rare hardware | Not available | Usually requires an external accessory |
| Battery temperature | LimitedMay expose battery-pack temperature | Not availableNo public degrees reading | Battery temperature is not ambient temperature |
| Thermal condition | Available | Available | Normal, elevated, serious, or critical heat state rather than degrees |
Wi-Fi, Bluetooth, and nearby devices
This is where Android pulls ahead. With the proper permissions, Android can scan nearby Wi-Fi access points and report identifiers, frequencies, and signal levels. iOS does not provide an ordinary App Store app with a general-purpose nearby Wi-Fi scanner.
Bluetooth does not reveal every phone nearby. A scan only sees devices that are actively advertising a discoverable Bluetooth service or identifier. Two copies of the same app can deliberately advertise and discover one another, which is a much more honest “nearby users” feature.
| Capability | Android | iPhone | What is realistic |
|---|---|---|---|
| Nearby Wi-Fi networks | AvailablePermission and scan throttling apply | Not availableNo general public scan | Android can list visible access points and signal levels |
| Connected Wi-Fi details | Available | LimitedEntitlement and privacy rules apply | Current network information, not every network in range |
| Nearby Bluetooth Low Energy devices | Available | Available | Devices currently broadcasting BLE advertisements |
| Classic Bluetooth discovery | Available | Not availableNo general classic-device browser | Android can find discoverable classic Bluetooth devices |
| Every nearby phone | Not available | Not available | Neither platform provides a public list of all people or phones nearby |
| Nearby phones running the same app | Available | Available | Cooperating app instances can advertise and discover one another |
| Bluetooth distance estimate | LimitedBased on RSSI | LimitedBased on RSSI | A rough range estimate that changes with walls, pockets, and reflections |
| Precise UWB distance and direction | LimitedSupported devices and a paired session | LimitedSupported devices and a paired session | Accurate ranging to a cooperating UWB device or accessory |
Cellular information and the nearest tower
Android can expose serving-cell and neighboring-cell information on many devices, but the result depends on permissions, the modem, the carrier, and the Android version. That still does not hand the app a verified tower address.
To draw a tower on a map, the app would need to match a cell identifier against an outside tower database. The serving cell is not always the physically closest tower, so the honest label is “serving cell” or “strongest observed cell,” not “nearest tower.”
| Reading | Android | iPhone | Limitation |
|---|---|---|---|
| Carrier or network operator | Available | LimitedPublic information is restricted and can change | Useful for a basic network summary |
| Radio technology | Available | Limited | Examples include LTE and 5G, subject to API and carrier behavior |
| Cellular signal measurements | AvailablePermission and device dependent | Not availableNo general public raw signal API | Android can expose detailed signal objects on supported devices |
| Serving cell identity | AvailableFine location commonly required | Not available | Cell IDs can be displayed or matched to an external database |
| Neighboring cells | LimitedResults can be cached or incomplete | Not available | Not guaranteed on every carrier or handset |
| Verified closest tower location | Not available | Not available | Requires external tower data and should still be described as an estimate |
Other useful hardware
Camera and microphone access can turn the app into a much richer field instrument, but they must never start silently. A clear Start button, visible recording state, and plain-language permission explanation are essential.
Biometric APIs are intentionally narrow. An app can ask the operating system to authenticate the user, but it cannot read or export a fingerprint template or Face ID model.
| Capability | Android | iPhone | What it provides |
|---|---|---|---|
| Microphone | AvailablePermission required | AvailablePermission required | Sound level estimates, waveform, and frequency analysis |
| Camera | AvailablePermission required | AvailablePermission required | Images, brightness and color estimates, and computer vision |
| NFC tag reading | LimitedHardware and tag type dependent | LimitedSupported models and sessions | Short-range reading of compatible tags |
| Depth or LiDAR sensing | LimitedOnly certain devices | LimitedLiDAR on supported Pro models | Depth maps, room geometry, and augmented-reality measurements |
| Biometric authentication | Available | Available | A success or failure result controlled by the operating system |
| Raw fingerprint or face template | Not available | Not available | Biometric templates remain inside secure system hardware |
| Battery level and charging state | Available | Available | Percentage, charging status, and low-power condition |
| Network connectivity state | Available | Available | Whether the phone has Wi-Fi, cellular, or another usable route |
What a simple Start screen could display
The app should inspect the hardware at runtime, request permissions only when needed, and explain why a blank measurement is unavailable. “Sensor not installed,” “Permission denied,” and “Restricted by iOS” are far more useful than a mysterious zero.
A practical first release could update the fast motion readings several times per second while refreshing location and radio information less frequently to protect battery life.
The best platform for this app
Android is the stronger first version if the main attraction is showing nearby Wi-Fi networks, cellular details, ambient light, and the broadest possible inventory of installed sensors.
An iPhone version is still worthwhile. It can deliver a polished dashboard for motion, altitude, heading, location, steps, Bluetooth Low Energy, UWB, sound, camera, NFC, battery state, and device heat condition. It simply needs to label unavailable radio details honestly instead of pretending iOS can expose them.
The core engineering is straightforward. The serious work is permission design, privacy disclosure, battery management, model-by-model testing, and presenting uncertainty so the screen feels scientific rather than merely decorative.