小编vin*_*try的帖子

WifiConfiguration在Lollipop中启用网络

我正在研究Wifi项目,有一个模块可以让用户以编程方式加入wifi.

在kitkat及以下它的工作成功,但在Lollipop它没有工作.

这是代码:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = "\"testSSID\"";
wifiConfiguration.hiddenSSID = true;
wifiConfiguration.status = WifiConfiguration.Status.ENABLED;
wifiConfiguration.allowedKeyManagement
.set(WifiConfiguration.KeyMgmt.NONE);
netId = wifiManager.addNetwork(wifiConfiguration);
Log.d("WifiPreference", "add Network returned " + netId);
boolean checkEnableWifi = wifiManager.enableNetwork(netId, true);
Log.d("WifiPreference", "enableNetwork returned " + checkEnableWifi);
Run Code Online (Sandbox Code Playgroud)

我的测试设备是nexus 5内部版本编号LRX21O,我的代码或Lollipop上的bug有问题吗?

android android-wifi android-5.0-lollipop

13
推荐指数
2
解决办法
8148
查看次数

从广播接收器关闭应用程序

我是android编程的新手。我试过在活动中注册广播接收器,但是当应用程序 onPause 时我的接收器不工作。所以我发现我需要在清单中注册我的接收器。

我的目标是在用户关闭 Wifi 后关闭我的应用程序一段时间。

这是我的代码,但它不起作用。

public class ReceiverWifi extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Handler handler = new Handler();
        Runnable runnable = new Runnable() {

            @Override
            public void run() {
                MainActivity m = new MainActivity();
                m.finish();

            }
        };

        if (intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {

            int newWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
                    WifiManager.WIFI_STATE_UNKNOWN);

            switch (newWifiState) {

            case WifiManager.WIFI_STATE_DISABLED:

                Toast.makeText(context, "Wi-fi Disconnected ",
                        Toast.LENGTH_SHORT).show();

                handler.postDelayed(runnable, 15 * 1000);
                break;

            }
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我的清单:

<receiver android:name="com.example.wifimonitor.ReceiverWifi" >
    <intent-filter>
        <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver

5
推荐指数
1
解决办法
7752
查看次数