1. 程式人生 > >android:wifi通訊(一)

android:wifi通訊(一)

上傳了原始碼,自己下載看吧:http://download.csdn.net/detail/bigtree_mfc/9528424

關於wifi操作:

1、開啟wifi

2、關閉wifi

3、獲取wifi網絡卡狀態

activity_main.xml中新增三個按鈕

public class MainActivity extends ActionBarActivity 
{
	@Override
    protected void onCreate(Bundle savedInstanceState) 
    {
		WifiManager wifimanager = (WifiManager)getSystemService(Context.WIFI_SERVICE); 
		Button bt1 = (Button)this.findViewById(R.id.Button1);
		Button bt2 = (Button)this.findViewById(R.id.Button2);
		Button bt3 = (Button)this.findViewById(R.id.Button3);
		
		bt1.setOnClickListener(new OnClickListener()
		{			
			public void onClick(View v)
            { 
				wifimanager.setWifiEnabled(true); //開啟wifi網絡卡
            }
		});

		bt2.setOnClickListener(new OnClickListener()
		{			
			public void onClick(View v)
            { 
				wifimanager.setWifiEnabled(false); //關閉wifi網絡卡
            }
		});

		bt3.setOnClickListener(new OnClickListener()
		{			
			public void onClick(View v)
            { 
				switch(wifimanager.getWifiState())
	    		{
	    		case 0://WIFI正在關閉
	    			toast("WIFI正在關閉");
	    			break;
	    		case 1://WIFI網絡卡不可用
	    			toast("WIFI網絡卡不可用");
	    			break;
	    		case 2://WIFI網絡卡正在開啟
	    			toast("WIFI網絡卡正在開啟");
	    			break;
	    		case 3://WIFI網絡卡可用 
	    			toast("WIFI網絡卡可用 ");
	    			break;
	    		case 4:
	    			toast("未知網絡卡狀態");
	    			break;
	    		}
            }
		});
		
		public void toast(String str)
        {
        	Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();     	
        }	
}

4、掃描周圍wifi熱點

XML中新增一個TextView,用來顯示掃描到的熱點,用tv表示

private List<ScanResult> list;  

private ScanResult mScanResult;  

private StringBuffer sb = new StringBuffer();

按鈕事件中:

if(sb != null)//資料清零
	{  
        sb = new StringBuffer();  
    } 
    wifimanager.startScan();//開始掃描  		      
	list = wifimanager.getScanResults();//得到掃描結果  
	if(list != null)
    {  
        for(int i = 0; i < list.size(); i++)
        {  
        	//得到掃描結果  
            mScanResult = list.get(i);  
            sb = sb.append(mScanResult.SSID+"\n") ;//名稱
        }  
        tv.setText("掃描到的wifi網路:\n"+sb.toString()); 
    }  

5、連線wifi

主要還是通過開啟系統wifi介面進行連線