There's a bug in Android 8.0+ where if you use a VPN it thinks the WiFi is metered. Google are aware of the issue and are fixing it but for now we can't really detect that state.
— Pocket Casts (@pocketcasts) May 21, 2018
Back in December (2017), we brought to limelight the WiFi+VPN glitch triggered by the Android 8.1 release, for Google said they have resolved the problem internally and will be releasing the fix publicly in a future Android update. But the promised fix never arrived.
Cut to March (2018), and the company took a u-turn on the matter. On another thread discussing the same problem at Google’s own Issue Tracker, one of the company employees marked the status as Won’t Fix (Intended Behavior), and here’s how they justified their action:
When a VPN is up the OS has no way to guarantee that network traffic will go on wifi. The VPN app could decide to send and receive traffic on any available interface, including cell data. Recent changes to the VPN code have made it so that if the VPN calls setUnderlyingNetworks, the networking APIs will reflect some of the properties of the underlying networks (e.g., whether they are metered or not) into the VPN’s networkcapabilities. But it’s up to the podcast app to use the required APIs, such as isActiveNetworkMetered.
With that coming from Google, one of the complainants posted a query at the OpenVPN for Android GitHub page to gain more clarity on the matter. They got a quick reply from a developer there, saying, the problem will be fixed in Android P.
I think so too because this issue is going to be fixed in Android P
The same developer also linked to the official Android P behavior changes page, which carries a section titled More detailed network capabilities reporting for VPNs that discusses VPN related changes in detail. It reads:
In platform versions lower than Android P, the NetworkCapabilities class only reported a limited set of information for VPNs, such as TRANSPORT_VPN but omitting NET_CAPABILITY_NOT_VPN. This situation made it difficult for app developers to determine if using a VPN would result in charges to the user. For example, checking NET_CAPABILITY_NOT_METERED would not determine whether the underlying networks are metered or not.
Starting in Android P, when a VPN calls the setUnderlyingNetworks() method, the Android system merges the transports and capabilities of any underlying networks and returns the result as the effective network capabilities of the VPN network.
App developers that already check for NET_CAPABILITY_NOT_METERED receive the network capabilities of the VPN and the underlying networks starting in Android P.
The aforementioned explanation, though a bit technical, clearly confirms that Android P will change the problematic behaviour, fixing the VPN issue currently faced by those on Oreo 8.1.
For a quick refresher, the problem in question basically prevents apps from accessing the Internet through WiFi during a VPN connection. Users with devices running Android 8.1 have been complaining that some of their most frequently used apps – like Google Photos – that are set to only work with WiFi, fail to recognize that the device is on WiFi when there’s an active connection to a VPN service/network.
We also stumbled upon a tweet from the team behind one of the affected apps, Pocket Casts, wherein they confirmed that the existing behaviour is an Android 8.1 bug, which Google is working to resolve.
To sum it up, those encountering this problem will have to wait at least until Android P goes public, for it is expected to bring along the pill that you are looking for.
Stay connected with us on Twitter (@PiunikaWeb) to hear about all related developments as and when they occur