监控Android中的热点状态

时间:2013-02-04 05:39:25

标签: android android-intent broadcastreceiver

我是初学者。
我希望通过broadcastreceiveronReceive)接收信息,以了解用户是否启用/禁用"Portable Wi-Fi Hotspot" (Settings->Wireless &Networks->Tethering & portable hotspot)。 检查一下link 我发现有“android.net.wifi.WIFI_AP_STATE_CHANGED”,但它被设置为隐藏。我怎么能用那个???

提前致谢

2 个答案:

答案 0 :(得分:22)

接收启用/禁用“便携式Wi-Fi热点”事件,您需要将接收器注册为WIFI_AP_STATE_CHANGED:

mIntentFilter = new IntentFilter("android.net.wifi.WIFI_AP_STATE_CHANGED");
registerReceiver(mReceiver, mIntentFilter);

在BroadcastReceiver onReceive中,我们可以使用wifi_state提取wifi热点状态:

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中声明Receiver进行android.net.wifi.WIFI_AP_STATE_CHANGED操作,并在AndroidManifest.xml

中包含所有必要的wifi权限

编辑:

在AndroidManifest中添加接收器:

<receiver android:name=".WifiApmReceiver">
    <intent-filter>
        <action android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" />
    </intent-filter>
</receiver>

您可以查看this示例获取更多帮助

答案 1 :(得分:0)

Hii#user802467在此链接评论中提出了您的问题的答案:How to get wifi hotspot state。由于版本4及更高版本,值介于10-13之间。您可以轻松获得链接中所述的实际状态。