Android App Using Volumio Hotspot Requires Network Sign In

I’m setting up a Odroid C1+ with Hi-Fi shield to use in my car. I’m planning on using Volumio’s Hotspot mode and controlling it with the Android app on my smartphone. However, when the phone connects to the hotspot it displays a notification to “Sign in to Wif-Fi network”

Screenshot_20200520-090648.jpg

When I tap on the notification it opens a window titled “Sign in to Volumio / connectivitycheck.gstatic.com” with the remainder of the window displaying the Volumio player app. If I tap on the three dots on the upper right of the screen I can select “Use this network as is” and the screen goes away.

If the Android Volumio app is already running before I do this, the app says that the phone is not connected to a Wi-Fi network:

Screenshot_20200520-091824.png

If the app is started after I do the “fake sign in”, it finds Volumio and displays the player interface.

My concerns are: 1) Why does Android need to sign into the network when there are no credentials needed. BTW, MacOS also displays a sign in screen when it connects to a Volumio hotspot. 2) I don’t want to go through this process every time I want to connect to the hotspot.

The described behavior in the OP is due to Captive Portal Login. Upon connection to the Volumio backend’s hotspot the OS (Android, MacOS, and probably Win and Linux) checks to see if this connection has internet access. If it does not have access, it is assuming that the connection is to a Wifi hotspot that requires login credentials to open the connection to the internet. So, it displays the Captive Portal Login window expecting that the host will then display a login screen. The Volumio backend is not expecting this “request,” but instead just displays the UI in a browser. The Volumio app fails in its search for Volumio backend and reports the search failure.

I’m guessing that Android and MacOS use pinging to certain URLs and checks for a response.

In Android, the URLs are: connectivitycheck.gstatic.com, www.google.com, play.googleapis.com

In MacOS, the URL is: capture.apple.com

I changed the behavior by redirecting the URLs via Volumio’s /etc/hosts file. Editing the file via ssh and adding the following lines:

127.0.0.1 captive.apple.com 127.0.0.1 connectivitycheck.gstatic.com www.google.com play.googleapis.com

Then reboot the Volumio backend.