Попробуйте ввести код, чтобы программно включить Wi-Fi-модем. Я тестировал, и он работает в моем приложении.
public class WifiAccessManager {
private static final String SSID = "1234567890abcdef";
public static boolean setWifiApState(Context context, boolean enabled) {
//config = Preconditions.checkNotNull(config);
try {
WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
if (enabled) {
mWifiManager.setWifiEnabled(false);
}
WifiConfiguration conf = getWifiApConfiguration();
mWifiManager.addNetwork(conf);
return (Boolean) mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class).invoke(mWifiManager, conf, enabled);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public static WifiConfiguration getWifiApConfiguration() {
WifiConfiguration conf = new WifiConfiguration();
conf.SSID = SSID;
conf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
return conf;
}
}
Использование:
WifiAccessManager.setWifiApState(context, true);
Разрешение Требуется:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Спасибо за быстрый ответ! Это позволяет отключить Wi-Fi, но setWifiApState возвращает false, и привязка не активируется. Мне нужен корневой телефон? Я пытаюсь сделать это, не укоряя телефон. – CalumMcCall
@CalumMcCall Нужен ли мне корневой телефон? я так не думаю, так как мое устройство не укоренено и оно работает. –
@CalumMcCall может быть, вы должны попробовать printStackTrace в методе setWifiApState, чтобы увидеть ошибку. –