android3.0偵測WIFI連接狀態

 由於工作需要,測試部門要求我們寫一個程序能夠偵測WIFI和BT(Bluetooth)的連接狀態,我負責WIFI,另一個同事負責BT。

這裏將寫的偵測WIFI的代碼貼上,希望對大家有用。

	public  String IsWiFiConnected() {
		try {
			Log.v("ISWiFiConnected", "IsWiFiConnected() start");
			IConnectivityManager mFM = IConnectivityManager.Stub
					.asInterface(ServiceManager.getService("connectivity"));
			NetworkInfo FMState = mFM.getNetworkInfo(1);
			if (FMState.isConnected()){
				return "true";
				}
		} catch (Exception e) {
			e.printStackTrace();
			return "false";
		}
		return "false";
	}


上面這個方法就能判斷出WIFI的連接狀態。

 

另外由於有需求所以還寫了一個方法,先用來判斷WIFI是否處於開啓狀態,畢竟如果WIFI都沒開的話,那肯定是不會有連接這一說的了

	public  String IsWIFIOn() {
		android.os.Parcel data = android.os.Parcel.obtain();
		android.os.Parcel reply = android.os.Parcel.obtain();

		int result = -1;
		try {
			data.writeInterfaceToken("android.net.wifi.IWifiManager");
			IBinder mRemote = ServiceManager.getService(Context.WIFI_SERVICE);
			try {
				mRemote.transact(14, data, reply, 0);
			} catch (RemoteException e) {

				e.printStackTrace();
			}
			reply.readException();
			result = reply.readInt();
		} finally {
			 reply.recycle();
			 data.recycle();
		}
		return (result == 3) ? "true" : "false";
	}

 

在你使用這兩個方法是,我想說的是:

1.這是使用Android3.0,也就是用在平板上的。

2.你將這兩個方法放入你的android工程中是,你切記要加上關於WIFI的權限

並且還有一點就是,你要import幾樣東西

import android.os.ServiceManager;

import android.net.NetworkInfo;
import android.net.IConnectivityManager;

這幾個是關鍵,其他的你自己看着加。

3.你的APK要放到源碼中去編譯

最後,Good Luck!微笑

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章