簡體   English   中英

在Android中自動連接到wifi網絡?

[英]Automatically connect to wifi network in android?

我正在開發一個應用程序,如果該應用程序以前連接過網絡,那么只要打開wifi,然后在后台應用程序中都應連接到網絡?我可以為此目的使用廣泛投放接收器嗎?

為了接收Broadcast的連接更改,您可以像這樣收聽:

AndroidManifest.xml注冊您的接收器

    <receiver
            android:name=".NetworkCheckReceiver"
            >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
   </receiver>

然后在BroadcastReceiver類中

public class NetworkCheckReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
                Log.d("NetworkCheckReceiver", "NetworkCheckReceiver invoked...");


                boolean noConnectivity = intent.getBooleanExtra(
                        ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);

                if (!noConnectivity) {
                    Log.d("NetworkCheckReceiver", "connected");
                    WifiConfiguration wifiConfig = new WifiConfiguration();
                    wifiConfig.SSID = String.format("\"%s\"", networkSSID);
                    wifiConfig.preSharedKey = String.format("\"%s\"", networkKey);
                    WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);

                    int netId = wifiManager.addNetwork(wifiConfig);
                    wifiManager.disconnect();
                    wifiManager.enableNetwork(netId, true);
                    wifiManager.reconnect();
                }
                else{
                    Log.d("NetworkCheckReceiver", "disconnected");
                }
            }
        }
 }

當然,不要忘記添加所需的權限

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM