1. 程式人生 > >Android學習筆記(十)之WIFI服務的開啟和關閉

Android學習筆記(十)之WIFI服務的開啟和關閉

效果演示

現在的程式大多都需要Internet支援,下面主要說下針對Wifi服務的開啟和關閉

 

 詳細步驟

修改xml檔案

首先新建工程,然後修改main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"
        android:id="@+id/wifistatus" />
	 <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="開啟"
        android:id="@+id/start" />
	 
	  <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="關閉"
        android:id="@+id/stop" />
	    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="檢查"
        android:id="@+id/check" />
</LinearLayout>

完善java程式碼


然後在【MyWifiDemo.java】中新增程式碼:

package com.cayden.demo;

import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MyWifiDemo extends Activity {
    /** Called when the activity is first created. */
	private Button start=null;
	private Button stop=null;
	private Button check=null;
	
	private TextView wifistatus=null;
	private WifiManager wifiManager=null;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        /**
         * 獲取對應元件
         */
        start=(Button)this.findViewById(R.id.start);
        
        stop=(Button)this.findViewById(R.id.stop);
        
        check=(Button)this.findViewById(R.id.check);
        
        wifistatus=(TextView)this.findViewById(R.id.wifistatus);
        /**
         * 給按鈕設定點選事件
         */
        start.setOnClickListener(new StartOnclickListenerImpl());
        stop.setOnClickListener(new StopOnclickListenerImpl());
        check.setOnClickListener(new CheckOnclickListenerImpl());
        
        /**
         * 獲取WIFI服務
         */
        wifiManager=(WifiManager)super.getSystemService(Context.WIFI_SERVICE);
        
        
        
    }
    private class StartOnclickListenerImpl implements OnClickListener{

		/* (non-Javadoc)
		 * @see android.view.View.OnClickListener#onClick(android.view.View)
		 */
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			wifiManager.setWifiEnabled(true);
			wifistatus.setText("wifi開啟");
		}
    	
    }
    private class StopOnclickListenerImpl implements OnClickListener{

  		/* (non-Javadoc)
  		 * @see android.view.View.OnClickListener#onClick(android.view.View)
  		 */
  		@Override
  		public void onClick(View v) {
  			// TODO Auto-generated method stub
  			wifiManager.setWifiEnabled(false);
  			wifistatus.setText("wifi關閉");
		
  		}
      	
      }
    
    private class CheckOnclickListenerImpl implements OnClickListener{

  		/* (non-Javadoc)
  		 * @see android.view.View.OnClickListener#onClick(android.view.View)
  		 */
  		@Override
  		public void onClick(View v) {
  			// TODO Auto-generated method stub
  			int status=wifiManager.getWifiState();
  			wifistatus.setText("wifi狀態 ="+status);
  		}
      	
      }
}

配置wifi服務


最後不要忘了 還需要配置服務:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.cayden.demo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".MyWifiDemo"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

工程下載地址