詳細資訊可以參考WifiManager | Android Developers
此篇文章主要目的是建立兩個Button去控制WiFi的開啟與關閉
在此附上完整程式碼:
1. MainActivity.java 程式碼
package tw.app.ryan.wifimanagerexample; import android.content.Context; import android.net.wifi.WifiManager; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends ActionBarActivity { private WifiManager mWifiMngr;//管理並控制Wifi private Button btnWifiOn;//開啟wifi private Button btnWifiOff;//關閉wifi @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //取得介面資源 btnWifiOn = (Button)findViewById(R.id.btnWifiOn); btnWifiOff = (Button)findViewById(R.id.btnWifiOff); //設定Wifi裝置 mWifiMngr = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);//取得WifiManager //設定按鈕功能 // 開啟wifi btnWifiOn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //若wifi狀態為關閉則將它開啟 if (!mWifiMngr.isWifiEnabled()) { mWifiMngr.setWifiEnabled(true); } } }); // 關閉wifi btnWifiOff.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //若wifi狀態為開啟則將它關閉 if (mWifiMngr.isWifiEnabled()) { mWifiMngr.setWifiEnabled(false); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
2. main.xml(Layout)程式碼
<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <textview android:id="@+id/txtTitle" android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="WifiManager" android:textappearance="?android:attr/textAppearanceLarge"> <linearlayout android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="wrap_content"> <button android:id="@+id/btnWifiOn" android:layout_height="wrap_content" android:layout_width="180dp" android:text="開啟Wifi"> </button> <button android:id="@+id/btnWifiOff" android:layout_height="wrap_content" android:layout_width="180dp" android:text="關閉Wifi"> </button> </linearlayout> </textview></linearlayout>
3. AndroidManifest.xml
記得要在AndroidManifest檔案裡面增加uses-permission給他:
<manifest package="tw.app.ryan.wifimanagerexample" xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:label="@string/app_name" android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"> <category android:name="android.intent.category.LAUNCHER"> </category></action></intent-filter> </activity> </application> </manifest>
4.執行畫面
沒有留言:
張貼留言