If you've heard or used AirDrop in your iOS or macOS devices, then you've definitely used the Apple equivalent of Wi-Fi Aware. As a matter of fact, Wi-Fi aware is heavily inspired by the same technology implemented by Apple called Apple Wireless Direct. Wi-Fi Aware is a new standard from the Wi-Fi Alliance that allows devices to make direct connections with each other using their Wi-Fi chips. The APIs and SDKs to use Wi-Fi aware showed up in Android 8. However, it was left up to the device manufacturers to implement Wi-Fi Aware. This means that it's quite difficult to find out if your device supports Wi-Fi aware very easily. Most Android developers and users are completely un-aware of Wi-Fi aware on their own devices without running some specialized code.
Finding out Wi-Fi Aware Support in Code
This is the easiest way to figure out if your device supports Wi-Fi aware in your Android code:
1. Add the following permissions to the AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.wifiawarechecker">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
...
</manifest>
2. In your activity or application you can retrieve a Boolean showing if your runtime device supports Wi-Fi Aware like so:
val isSupported = context.packageManager.hasSystemFeature(PackageManager.FEATURE_WIFI_AWARE)
However, we found that constantly creating this project and runnning this code was very tiresome. So we've created an open source app so that developers could quickly find out Wi-Fi aware support on their devices:
See the app and repo here:
Below, you can see the app in action. Notice that the Samsung S10 on the left supports Wi-Fi aware and the OnePlus 5T on the right doesn't. Even though both devices are on Android versions above 8.0, the OnePlus 5T is missing the appropriate hardware and firmware to enable Wi-Fi aware:
What do I do from here?
Ditto is in the process of supporting Wi-Fi Aware in modern Android devices in Q3 2020. But in the meantime, we encourage you to try to build an app by following the documentation if you have at least two devices that have Wi-Fi aware support.
Unfortunately, we have to make it clear the Android's Wi-Fi aware is not compatible with Apple Wireless Direct (which powers technologies like Ditto and AirDrop). Right now, we're in the process of compiling a database of all the Android devices that support the specification, so please stay tuned. We believe that Wi-Fi aware is the most important advancement of Android peer-to-peer networking technologies and cannot wait to see more devices use it.
Resources
- Wi-Fi Aware Android Documentation
- Wi-Fi Aware Specifications
- Wi-Fi Aware is also known as Neighbor Awareness Networking Specification (NAN)