7

我是安卓新手。
我想通过broadcastreceiver( onReceive) 接收信息以了解用户是否启用/禁用"Portable Wi-Fi Hotspot" (Settings->Wireless &Networks->Tethering & portable hotspot)
检查这个链接 我发现有“ android.net.wifi.WIFI_AP_STATE_CHANGED”但它被设置为隐藏。我怎么能用它???

提前致谢

4

2 回答 2

25

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

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

在 BroadcastReceiver onReceive 中,我们可以使用 as 提取 wifi 热点状态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 中声明 Receiver 来执行相同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>

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

于 2013-02-04T06:03:49.990 回答
0

Hii #user802467 在此链接的评论中回答了您的问题:如何获取 wifi 热点状态。由于版本 4 及更高版本,值介于 10-13 之间。您可以按照链接中的说明轻松获取实际状态。

于 2014-10-13T09:47:12.437 回答