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)卡進行操作需要通過對 WifiManager 對象來進行,獲取該對象的方法如下:
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操作,所以例子需要在實體手機上運行
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();
}
}
}
相關(guān)文章
20行Android代碼寫一個CircleImageView
這篇文章主要介紹了20行Android代碼寫一個CircleImageView,制作圓形頭像,感興趣的小伙伴們可以參考一下2016-08-08
Material Design系列之Behavior實現(xiàn)Android知乎首頁
這篇文章主要為大家詳細介紹了Material Design系列之Behavior實現(xiàn)Android知乎首頁的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
Android Flutter實現(xiàn)點贊效果的示例代碼
點贊這個動作不得不說在社交、短視頻等App中實在是太常見了。本文將利用Flutter制作出一個點贊動畫效果,感興趣的小伙伴可以學(xué)習(xí)一下2022-04-04
Andorid基于ZXing實現(xiàn)二維碼生成與掃描的示例代碼
ZXing是一個開源的條碼和二維碼掃描庫,它可以用于Android開發(fā)中,通過ZXing庫可以實現(xiàn)Android設(shè)備上的條碼和二維碼掃描功能,開發(fā)者可以輕松地在Android應(yīng)用中集成條碼和二維碼掃描功能,本文主要給大家介紹了Andorid?ZXing實現(xiàn)二維碼,感興趣的朋友可以參考下2023-08-08
Android?OpenCV基礎(chǔ)API清晰度亮度識別檢測
這篇文章主要為大家介紹了Android?OpenCV基礎(chǔ)API清晰度亮度識別檢測,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
Android實現(xiàn)圖片循環(huán)播放的實例方法
2013-05-05
Android實現(xiàn)長按圓環(huán)動畫View效果的思路代碼
這篇文章主要介紹了Android實現(xiàn)長按圓環(huán)動畫View效果,本文給大家分享實現(xiàn)思路,通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Flutter開發(fā)之支持放大鏡的輸入框功能實現(xiàn)
在Flutter開發(fā)時,有時為了優(yōu)化用戶輸入體驗,往往會需要輸入框支持在移動光標(biāo)過程中可以出現(xiàn)放大鏡功能。本文將為大家介紹實現(xiàn)的方法,需要的可以參考一下2022-02-02

