1. 程式人生 > >操作手機wifi(打開、關閉、獲取連接信息)

操作手機wifi(打開、關閉、獲取連接信息)

ret activit style onclick and manage bundle tar pad

頁面布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text
="@string/hello_world" /> <Button android:id="@+id/state" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/start" android:layout_below="@+id/start" android:layout_marginTop="75dp" android:onClick
="StateButton" android:text="state" /> <Button android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/state" android:layout_below="@+id/start" android:layout_marginTop="15dp" android:onClick="StopButton" android:text="stop" /> <Button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="24dp" android:onClick="StartButton" android:text="start" /> <Button android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="250dp" android:onClick="ListButton" android:text="getList" /> </RelativeLayout>

三個按鈕:第一個打開wifi,第二個關閉wifi,第三個獲取搜索到的wifi信息

================================================================================================================================================================

activity:

public class MainActivity extends Activity {

    WifiManager wifiManage;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        wifiManage = (WifiManager) this.getSystemService(WIFI_SERVICE);//獲取 wifi管理者
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
/**
 * wifi管理者的各種方法可用於判斷wifi狀態、操控wifi打開和關閉
 * @param v
 */
    public void StartButton(View v){
        System.out.println("start");
        if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_DISABLED){
            wifiManage.setWifiEnabled(true);//打開wifi
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_DISABLING){
            System.out.println("正在關閉");
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_ENABLING){
            System.out.println("正在打開");
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_ENABLED){
            System.out.println("早已打開");
        }
    }
    public void StopButton(View v){
        System.out.println("stop");
        System.out.println("start");
        if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_DISABLED){
            System.out.println("早已關閉");
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_DISABLING){
            System.out.println("正在關閉");
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_ENABLING){
            System.out.println("正在打開");
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_ENABLED){
            wifiManage.setWifiEnabled(false);//關閉wifi
        }
    }
    public void StateButton(View v){
        System.out.println("state");
        System.out.println("start");
        if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_DISABLED){
            System.out.println(wifiManage.getWifiState());
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_DISABLING){
            System.out.println(wifiManage.getWifiState());
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_ENABLING){
            System.out.println(wifiManage.getWifiState());
        }else if(wifiManage.getWifiState()==wifiManage.WIFI_STATE_ENABLED){
            System.out.println(wifiManage.getWifiState());
        }
    }
    
    public void ListButton(View v) {
        //獲取wifi列表的list
        List<WifiConfiguration> netWorkList = wifiManage.getConfiguredNetworks();
        //獲取wifi信息
        System.out.println(netWorkList.get(0).SSID);
        System.out.println(netWorkList.get(1).SSID);
        System.out.println(netWorkList.get(2).SSID);
        System.out.println(netWorkList.get(3).SSID);
    }
}

===============================================================================================================================================================

總結:

1、wifi狀態

  

wifiManage.WIFI_STATE_DISABLED//wifi不可用
wifiManage.WIFI_STATE_DISABLING//wifi正在關閉
wifiManage.WIFI_STATE_ENABLING//wifi正在打開
wifiManage.WIFI_STATE_ENABLED//wifi可用

wifiManage.getWifiState()//獲取wifi當前狀態

2、操作wifi

wifiManage.setWifiEnabled(false);//關閉wifi
wifiManage.setWifiEnabled(true);//打開wifi

3、獲取wifi列表

List<WifiConfiguration> netWorkList =wifiManage.getConfiguredNetworks();

4、獲取管理者

wifiManage = (WifiManager) this.getSystemService(WIFI_SERVICE);

即:獲取系統服務----wifi管理者

操作手機wifi(打開、關閉、獲取連接信息)