Devo inviare pacchetti UDP a un modulo WiFi (fornito con proprio AP) senza connessione Internet ma quando collego il cellulare con l'AP, Android reindirizza i miei pacchetti sull'interfaccia dati mobile perché ha una connessione Internet.Invia richiesta tramite WiFi (senza connessione) anche se i dati mobili sono ON (con connessione) su Android M
Ho usato il codice qui sotto per fare il mio lavoro, ma non sembra lavorare su Android M.
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void setWifiInterfaceAsDefault() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = new NetworkRequest.Builder();
NetworkRequest networkRequest= builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build();
connectivityManager.requestNetwork(networkRequest, new ConnectivityManager.NetworkCallback());
}
Ho anche aggiunto
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
sul mio AndroidManifest.xml e ho mi sono assicurato che Settings.System.canWrite(this)
restituisce true
ma ancora niente.
Grazie in anticipo.
Il mio amico Hai capire una soluzione? Ho il requisito esatto. – AppleGrew
Ho risolto il problema simulando una connessione sul dispositivo IoT per consentire a Android di pensare che il dispositivo IoT avesse una connessione. Puoi farlo inserendo un file void chiamato generate_204 nella root del server e aggiungendo alcuni URL al tuo server DNS. So che è una soluzione strana, ma per me ha funzionato. Spero di averti aiutato. –
Grazie, ma sfortunatamente non è un'opzione per me. Il dispositivo IoT non è nel mio controllo. – AppleGrew