Включить / выключить USB или Wi-Fi модем программно на Android

Есть ли способ включить или отключить модем (USB или Wi-Fi) на телефоне Android программно? Возможно, API в Android SDK или NDK или любая другая команда, не связанная с пользовательским интерфейсом, чтобы сделать это.

Заранее спасибо.

2 ответа

Это возможно и без рут-доступа, я использую приведенный ниже код в моих приложениях:

private void setWifiTetheringEnabled(boolean enable) {
    WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);

    Method[] methods = wifiManager.getClass().getDeclaredMethods();
    for (Method method : methods) {
        if (method.getName().equals("setWifiApEnabled")) {
            try {
                method.invoke(wifiManager, null, enable);
            } catch (Exception ex) {
            }
            break;
        }
    }
}

Ваше приложение должно иметь следующее разрешение:

android.permission.CHANGE_WIFI_STATE

Посмотрите на этот вопрос.

По сути, нет никаких открытых API для этого. Взгляните на приложение настроек, чтобы увидеть, как это делают внутренние приложения. Может повезет с этим:

https://github.com/android/platform_packages_apps_settings/blob/master/src/com/android/settings/TetherSettings.java

Другие вопросы по тегам