Мониторинг состояния горячей точки в Android
Я новичок в Android.
Я хочу получать информацию через broadcastreceiver
(onReceive
) знать, что если пользователь включает / отключает "Portable Wi-Fi Hotspot"
(Settings->Wireless &Networks->Tethering & portable hotspot)
,
Проверить эту ссылку И я обнаружил, что есть "android.net.wifi.WIFI_AP_STATE_CHANGED
"но это было скрыто. Как я могу это использовать???
заранее спасибо
2 ответа
Для получения включения / отключения событий "Переносная точка доступа Wi-Fi" необходимо зарегистрировать приемник для WIFI_AP_STATE_CHANGED как:
mIntentFilter = new IntentFilter("android.net.wifi.WIFI_AP_STATE_CHANGED");
registerReceiver(mReceiver, mIntentFilter);
внутри BroadcastReceiver onReceive мы можем извлечь состояние точки доступа Wi-Fi, используя 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
}
}
}
};
Вы можете сделать то же самое, объявив Receiver в AndroidManifest для android.net.wifi.WIFI_AP_STATE_CHANGED
действие, а также включить все необходимые разрешения Wi-Fi в 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 и выше. Вы можете легко получить фактическое состояние, как описано в ссылке.