Intereting Posts
Выберите текст из TextView? Отправлять и получать данные по UDP Socket java android Просмотреть onDraw (Canvas c) в сравнении с draw (Canvas c) в android? Как связать как Mousedown, так и Touchstart, но не реагировать на оба? Android, JQuery Запуск приложения через adb без знания Название действия Жизненный цикл Android Fragment над изменениями ориентации Как использовать ADB для отправки сенсорных событий на устройство с помощью команды sendevent? Фрагменты, Диалоговое Фрагмент и Вращение экрана Android проверяет статус WIFI (отключен или пользователь изменен WIFI) Как FLAG это? Основной поток слишком много работает из-за асинхронных вызовов Firebase? Получение свойства имени представления в android? Ошибка со списком активности с запущенным устройством для обработки желе (SPAN_EXCLUSIVE_EXCLUSIVE spans не может иметь нулевую длину) Служба GeoCoder недоступна Применение эффектов при воспроизведении видео Как получить положение Touch в андроиде?

Android включает и выключает Wi-Fi HotSpot программно

Существует ли API для включения / отключения Wi-Fi HotSpot на программном обеспечении Android?

Какие методы следует использовать для включения / выключения?

UPDATE: есть возможность включить HotSpot и просто включить / выключить Wi-Fi, но это не очень хорошее решение для меня.

Solutions Collecting From Web of "Android включает и выключает Wi-Fi HotSpot программно"

Используйте следующий класс, чтобы изменить / установить параметр точки доступа Wi-Fi:

import android.content.*; import android.net.wifi.*; import java.lang.reflect.*; public class ApManager { //check whether wifi hotspot on or off public static boolean isApOn(Context context) { WifiManager wifimanager = (WifiManager) context.getSystemService(context.WIFI_SERVICE); try { Method method = wifimanager.getClass().getDeclaredMethod("isWifiApEnabled"); method.setAccessible(true); return (Boolean) method.invoke(wifimanager); } catch (Throwable ignored) {} return false; } // toggle wifi hotspot on or off public static boolean configApState(Context context) { WifiManager wifimanager = (WifiManager) context.getSystemService(context.WIFI_SERVICE); WifiConfiguration wificonfiguration = null; try { // if WiFi is on, turn it off if(isApOn(context)) { wifimanager.setWifiEnabled(false); } Method method = wifimanager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); method.invoke(wifimanager, wificonfiguration, !isApOn(context)); return true; } catch (Exception e) { e.printStackTrace(); } return false; } } // end of class 

Вам необходимо добавить разрешения ниже на ваш AndroidMainfest:

 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

Используйте этот автономный класс ApManager из любого места:

 ApManager.isApOn(YourActivity.this); // check Ap state :boolean ApManager.configApState(YourActivity.this); // change Ap state :boolean 

Надеюсь, это поможет кому-то

В Android SDK нет методов, относящихся к функции WiFi hotspot – извините!

Вы можете использовать следующий код, чтобы включить, отключить и запросить прямое состояние wifi программно.

 package com.kusmezer.androidhelper.networking; import java.lang.reflect.Method; import com.google.common.base.Preconditions; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.util.Log; public final class WifiApManager { private static final int WIFI_AP_STATE_FAILED = 4; private final WifiManager mWifiManager; private final String TAG = "Wifi Access Manager"; private Method wifiControlMethod; private Method wifiApConfigurationMethod; private Method wifiApState; public WifiApManager(Context context) throws SecurityException, NoSuchMethodException { context = Preconditions.checkNotNull(context); mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); wifiControlMethod = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class,boolean.class); wifiApConfigurationMethod = mWifiManager.getClass().getMethod("getWifiApConfiguration",null); wifiApState = mWifiManager.getClass().getMethod("getWifiApState"); } public boolean setWifiApState(WifiConfiguration config, boolean enabled) { config = Preconditions.checkNotNull(config); try { if (enabled) { mWifiManager.setWifiEnabled(!enabled); } return (Boolean) wifiControlMethod.invoke(mWifiManager, config, enabled); } catch (Exception e) { Log.e(TAG, "", e); return false; } } public WifiConfiguration getWifiApConfiguration() { try{ return (WifiConfiguration)wifiApConfigurationMethod.invoke(mWifiManager, null); } catch(Exception e) { return null; } } public int getWifiApState() { try { return (Integer)wifiApState.invoke(mWifiManager); } catch (Exception e) { Log.e(TAG, "", e); return WIFI_AP_STATE_FAILED; } } } 

Лучше всего посмотреть на класс WifiManager. В частности, setWifiEnabled(bool) .

См. Документацию по адресу: http://developer.android.com/reference/android/net/wifi/WifiManager.html#setWifiEnabled(boolean)

Учебник о том, как его использовать (включая необходимые разрешения), можно найти здесь: http://www.tutorialforandroid.com/2009/10/turn-off-turn-on-wifi-in-android-using.html

Это хорошо работает для меня:

 WifiConfiguration apConfig = null; Method method = wifimanager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE); method.invoke(wifimanager, apConfig, true); 

Я публикую неофициальные api для того же самого, он содержит больше, чем просто включение on/off hotspot. ссылка

Для DOC- ссылки API.

 WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); wifiManager.setWifiEnabled(status); 

Где статус может быть true или false

Добавить манифест разрешения: <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />