android開發(fā)教程之wifi開發(fā)示例
1、 WIFI網(wǎng)卡的狀態(tài)
WIFI網(wǎng)卡的狀態(tài)信息都以整型變量的形式存放在 android.net.wifi.WifiManager 類中,有以下狀態(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)卡正在打開
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)
對WIFI 網(wǎng)卡進(jìn)行操作需要通過對 WifiManager 對象來進(jìn)行,獲取該對象的方法如下:
WifiManager wifiManager=(WifiManager) Context.getSystemService(Service.WIFI_SERVICE);
打開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ǎ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 = ""; // 用來存放操作結(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 = "啟動wifi服務(wù)成功";
} else {
res = "啟動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正在啟動中";
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)獲取有線和無線Ip地址的方法
- Android手機(jī)獲取IP地址的兩種方法
- android編程實(shí)現(xiàn)設(shè)置、打開wifi熱點(diǎn)共享供他人連接的方法
- android連接wifi時(shí)獲取廣播地址代碼
- Android開發(fā)之Wifi基礎(chǔ)教程
- Android開發(fā)實(shí)現(xiàn)在Wifi下獲取本地IP地址的方法
相關(guān)文章
20行Android代碼寫一個(gè)CircleImageView
這篇文章主要介紹了20行Android代碼寫一個(gè)CircleImageView,制作圓形頭像,感興趣的小伙伴們可以參考一下2016-08-08
Material Design系列之Behavior實(shí)現(xiàn)Android知乎首頁
這篇文章主要為大家詳細(xì)介紹了Material Design系列之Behavior實(shí)現(xiàn)Android知乎首頁的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
Android Flutter實(shí)現(xiàn)點(diǎn)贊效果的示例代碼
點(diǎn)贊這個(gè)動作不得不說在社交、短視頻等App中實(shí)在是太常見了。本文將利用Flutter制作出一個(gè)點(diǎn)贊動畫效果,感興趣的小伙伴可以學(xué)習(xí)一下2022-04-04
Andorid基于ZXing實(shí)現(xiàn)二維碼生成與掃描的示例代碼
ZXing是一個(gè)開源的條碼和二維碼掃描庫,它可以用于Android開發(fā)中,通過ZXing庫可以實(shí)現(xiàn)Android設(shè)備上的條碼和二維碼掃描功能,開發(fā)者可以輕松地在Android應(yīng)用中集成條碼和二維碼掃描功能,本文主要給大家介紹了Andorid?ZXing實(shí)現(xiàn)二維碼,感興趣的朋友可以參考下2023-08-08
Android?OpenCV基礎(chǔ)API清晰度亮度識別檢測
這篇文章主要為大家介紹了Android?OpenCV基礎(chǔ)API清晰度亮度識別檢測,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Android實(shí)現(xiàn)圖片循環(huán)播放的實(shí)例方法
2013-05-05
Android實(shí)現(xiàn)長按圓環(huán)動畫View效果的思路代碼
這篇文章主要介紹了Android實(shí)現(xiàn)長按圓環(huán)動畫View效果,本文給大家分享實(shí)現(xiàn)思路,通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Flutter開發(fā)之支持放大鏡的輸入框功能實(shí)現(xiàn)
在Flutter開發(fā)時(shí),有時(shí)為了優(yōu)化用戶輸入體驗(yàn),往往會需要輸入框支持在移動光標(biāo)過程中可以出現(xiàn)放大鏡功能。本文將為大家介紹實(shí)現(xiàn)的方法,需要的可以參考一下2022-02-02

