android開(kāi)發(fā)教程之wifi開(kāi)發(fā)示例
1、 WIFI網(wǎng)卡的狀態(tài)
WIFI網(wǎng)卡的狀態(tài)信息都以整型變量的形式存放在 android.net.wifi.WifiManager 類(lèi)中,有以下?tīng)顟B(tài):
WIFI_STATE_DISABLED
WIFI網(wǎng)卡不可用
WIFI_STATE_DISABLING
WIFI網(wǎng)卡正在關(guān)閉
WIFI_STATE_ENABLED
WIFI網(wǎng)卡可用
WIFI_STATE_ENABLING
WIFI網(wǎng)卡正在打開(kāi)
WIFI_STATE_UNKNOWN
WIFI網(wǎng)卡狀態(tài)未知
2、 操作WIFI 網(wǎng)卡所需的權(quán)限
CHANGE_NETWORK_STATE
允許應(yīng)用程序改變網(wǎng)絡(luò)連接狀態(tài)
CHANGE_WIFI_STATE
允許應(yīng)用程序改變WIFI 連接狀態(tài)
ACCESS_NETWORK_STATE
允許應(yīng)用程序獲取網(wǎng)絡(luò)的狀態(tài)信息
ACCESS_WIFI_STATE
允許應(yīng)用程序獲得WIFI 的狀態(tài)信息
3、 改變WIFI 網(wǎng)卡的狀態(tài)
對(duì)WIFI 網(wǎng)卡進(jìn)行操作需要通過(guò)對(duì) WifiManager 對(duì)象來(lái)進(jìn)行,獲取該對(duì)象的方法如下:
WifiManager wifiManager=(WifiManager) Context.getSystemService(Service.WIFI_SERVICE);
打開(kāi)WIFI 網(wǎng)卡:
wifiManager.setWifiEnabled(true);
關(guān)閉WIFI 網(wǎng)卡
wifiManager.setWifiEnabled(false);
獲取網(wǎng)卡的當(dāng)前狀態(tài):
wifiManager.getWifiState();
示例代碼:由于Android模擬器不支持wifi操作,所以例子需要在實(shí)體手機(jī)上運(yùn)行
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="me.bym" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".WifiActivity" 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>
<uses-sdk android:minSdkVersion="4" />
<!-- 以下是使用wifi訪問(wèn)網(wǎng)絡(luò)所需要的權(quán)限 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
</manifest>
Activity
package me.bym;
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.Toast;
public class WifiActivity extends Activity {
private Button startWifiButton = null;
private Button shutdownWifiButton = null;
private Button checkStateButton = null;
private WifiManager wifiManager = null;
private String res = ""; // 用來(lái)存放操作結(jié)果信息的字符串
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startWifiButton = (Button) findViewById(R.id.StartWifiButton);
shutdownWifiButton = (Button) findViewById(R.id.ShutdownWifiButton);
checkStateButton = (Button) findViewById(R.id.CheckStateButton);
startWifiButton.setOnClickListener(new StartWifiListener());
shutdownWifiButton.setOnClickListener(new ShutdownWifiListener());
checkStateButton.setOnClickListener(new CheckStateListener());
}
class StartWifiListener implements OnClickListener {
@Override
public void onClick(View v) {
wifiManager = (WifiManager) WifiActivity.this
.getSystemService(Context.WIFI_SERVICE);
if (wifiManager.setWifiEnabled(true)) {
res = "啟動(dòng)wifi服務(wù)成功";
} else {
res = "啟動(dòng)wifi服務(wù)失敗";
}
Toast.makeText(WifiActivity.this, res, Toast.LENGTH_SHORT).show();
}
}
class ShutdownWifiListener implements OnClickListener {
@Override
public void onClick(View v) {
wifiManager = (WifiManager) WifiActivity.this
.getSystemService(Context.WIFI_SERVICE);
if (wifiManager.setWifiEnabled(false)) {
res = "關(guān)閉wifi服務(wù)成功";
} else {
res = "關(guān)閉wifi服務(wù)失敗";
}
Toast.makeText(WifiActivity.this, res, Toast.LENGTH_SHORT).show();
}
}
class CheckStateListener implements OnClickListener {
@Override
public void onClick(View v) {
wifiManager = (WifiManager) WifiActivity.this
.getSystemService(Context.WIFI_SERVICE);
switch (wifiManager.getWifiState()) {
case WifiManager.WIFI_STATE_DISABLED:
res = "WIFI已關(guān)閉";
break;
case WifiManager.WIFI_STATE_DISABLING:
res = "WIFI正在關(guān)閉中";
break;
case WifiManager.WIFI_STATE_ENABLED:
res = "WIFI已啟用";
break;
case WifiManager.WIFI_STATE_ENABLING:
res = "WIFI正在啟動(dòng)中";
break;
case WifiManager.WIFI_STATE_UNKNOWN:
res = "未知WIFI狀態(tài)";
break;
}
Toast.makeText(WifiActivity.this, res, Toast.LENGTH_SHORT).show();
}
}
}

- Android 判斷ip地址合法實(shí)現(xiàn)代碼
- Android 獲取IP地址的實(shí)現(xiàn)方法
- android 獲取本機(jī)的IP地址和mac物理地址的實(shí)現(xiàn)方法
- android實(shí)現(xiàn)獲取有線和無(wú)線Ip地址的方法
- Android手機(jī)獲取IP地址的兩種方法
- android編程實(shí)現(xiàn)設(shè)置、打開(kāi)wifi熱點(diǎn)共享供他人連接的方法
- android連接wifi時(shí)獲取廣播地址代碼
- Android開(kāi)發(fā)之Wifi基礎(chǔ)教程
- Android開(kāi)發(fā)實(shí)現(xiàn)在Wifi下獲取本地IP地址的方法
相關(guān)文章
Android中多行文本末尾添加圖片排版問(wèn)題的解決方法
這篇文章主要給大家介紹了關(guān)于Android中多行文本末尾添加圖片排版問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Android 掃描附近的藍(lán)牙設(shè)備并連接藍(lán)牙音響的示例
本篇文章主要介紹了Android 掃描附近的藍(lán)牙設(shè)備并連接藍(lán)牙音響的示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09Android攔截并獲取WebView內(nèi)部POST請(qǐng)求參數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Android攔截并獲取WebView內(nèi)部POST請(qǐng)求參數(shù) 的實(shí)現(xiàn)方法,本文通過(guò)兩種方案給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04Android網(wǎng)絡(luò)連接判斷與相關(guān)處理
這篇文章主要為大家詳細(xì)介紹了Android網(wǎng)絡(luò)連接判斷操作,幫助大家判斷WIFI網(wǎng)絡(luò)是否可用,判斷MOBILE網(wǎng)絡(luò)是否可用,感興趣的小伙伴們可以參考一下2016-08-08Android ViewModel與Lifecycles和LiveData組件用法詳細(xì)講解
JetPack是一個(gè)開(kāi)發(fā)組件工具集,他的主要目的是幫助我們編寫(xiě)出更加簡(jiǎn)潔的代碼,并簡(jiǎn)化我們的開(kāi)發(fā)過(guò)程。JetPack中的組件有一個(gè)特點(diǎn),它們大部分不依賴于任何Android系統(tǒng)版本,這意味者這些組件通常是定義在AndroidX庫(kù)當(dāng)中的,并且擁有非常好的向下兼容性2023-01-01Android startActivityForResult()代替方案示例
這篇文章主要為大家介紹了Android startActivityForResult()代替方案示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Emoji表情在Android JNI中的兼容性問(wèn)題詳解
這篇文章主要給大家介紹了關(guān)于Emoji表情在Android JNI中的兼容性問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Android JNI具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Android平臺(tái)中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的5種方式
這篇文章主要為大家分享了介紹了Android平臺(tái)中實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)技術(shù)的5種方式,供大家學(xué)習(xí),感興趣的小伙伴們可以參考一下2016-06-06