Я новичок в андроиде.
Я хочу получать информацию через broadcastreceiver
( onReceive
), чтобы знать, что если пользователь включит / отключит "Portable Wi-Fi Hotspot"
(Settings->Wireless &Networks->Tethering & portable hotspot)
.
Проверьте эту ссылку. И я обнаружил, что есть « android.net.wifi.WIFI_AP_STATE_CHANGED
», но она была скрыта. Как я могу это использовать?
заранее спасибо
Для получения разрешения на включение / выключение событий «Портативный Wi-Fi Hotspot» вам необходимо зарегистрировать приемник для WIFI_AP_STATE_CHANGED как:
mIntentFilter = new IntentFilter("android.net.wifi.WIFI_AP_STATE_CHANGED"); registerReceiver(mReceiver, mIntentFilter);
Внутри BroadcastReceiver onReceive мы можем извлечь состояние wifi_state
Hotspot, используя wifi_state
как:
private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("android.net.wifi.WIFI_AP_STATE_CHANGED".equals(action)) { // get Wi-Fi Hotspot state here int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0); if (WifiManager.WIFI_STATE_ENABLED == state % 10) { // Wifi is enabled } } } };
Вы можете сделать это, объявив приемник в AndroidManifest для android.net.wifi.WIFI_AP_STATE_CHANGED
действия, а также включите все необходимые разрешения wifi в AndroidManifest.xml
РЕДАКТИРОВАТЬ :
Добавить приемник в AndroidManifest как:
<receiver android:name=".WifiApmReceiver"> <intent-filter> <action android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" /> </intent-filter> </receiver>
Вы можете увидеть этот пример для получения дополнительной справки
Hii # user802467 есть ответ на ваш вопрос, заданный в комментариях по этой ссылке: Как получить состояние горячей точки Wi-Fi . Значения находятся между 10-13 из-за версии 4 и выше. Вы можете легко получить фактическое состояние, как описано в ссылке.