編輯:關於Android編程
public class WifiManager
? android.net.wifi.WifiManager
這個類提供了管理Wi-Fi連接的所有方面的主要API。它涉及幾類產品:
配置網絡列表。該列表可以查看和更新??,單個條目的屬性進行修改。 當前活動的Wi-Fi網絡,如果有的話。連接可以建立或拆除,並且有關網絡的狀態的動態信息可以查詢。 接入點的掃描的結果,包含足夠的信息來什麼接入點連接到決策。 它定義了在任何類型的Wi-Fi狀態變化的各種轉播意向動作的名稱。這是表演的Wi-Fi具體操作時要使用的API。
常用公共方法
int addNetwork(WifiConfiguration config)
添加一個新的網絡描述為一套配置網絡。
boolean disableNetwork(int netId)
禁用配置的網絡。
boolean disconnect()
從當前活動的接入點撇清。
boolean enableNetwork(int netId, boolean disableOthers)
允許之前配置的網絡與關聯。
List getConfiguredNetworks()
返回請求者配置的所有網絡的列表。
WifiInfo getConnectionInfo()
返回有關當前Wi-Fi連接的動態信息,如果有的話是積極的。
DhcpInfo getDhcpInfo()
從最後一次成功DHCP請求返回DHCP分配的地址,如果有的話。
List getScanResults()
返回最新的接入點掃描的結果。
int getWifiState()
獲取Wi-Fi功能的狀態。
boolean isWifiEnabled()
返回的Wi-Fi是否已啟用或禁用。
boolean reconnect()
重新連接到當前活動的訪問點上,如果我們目前正在斷開。
boolean removeNetwork(int netId)
從配置網絡的列表中刪除指定的網絡。
boolean setWifiEnabled(boolean enabled)
啟用或禁用無線網絡連接。
boolean startScan()
請求接入點的掃描。
int updateNetwork(WifiConfiguration config)
更新現有配置的網絡的網絡描述。
//取得WifiManager對象
mWifiManager = (android.net.wifi.WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
// 取得WifiInfo對象
mWifiInfo = mWifiManager.getConnectionInfo();
/** 打開WIFI*/
public void openWifi() {
if (!mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(true);
}
}
/**關閉WIFI*/
public void closeWifi() {
if (mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(false);
}
}
/**添加一個網絡並連接*/
public void addNetworkWPA(String wifiName ,String wifiPassword) {
WifiConfiguration wifiConfiguration = CreateWifiInfo(wifiName, wifiPassword, 3);
int wcgID = mWifiManager.addNetwork(wifiConfiguration);
boolean b = mWifiManager.enableNetwork(wcgID, true);
Log.d(TAG,"wcgID="+wcgID);
Log.d(TAG,"b="+b);
}
/**斷開指定ID的網絡*/
public void disconnectWifi(int netId) {
mWifiManager.disableNetwork(netId);
mWifiManager.disconnect();
}
/**搜索附近的wifi*/
List scanResults = wifiManager.startScanWifi();
/**
* Description :
* Author : liujun
* Email : liujin2son@163.com
* Date : 2016/8/12 0012
*/
public class WifiHelper {
public static final String TAG="WifiHelper";
//管理wifi
private android.net.wifi.WifiManager mWifiManager;
// WifiInfo對象
private WifiInfo mWifiInfo;
// 掃描出的
private List mWifiList;
// 網絡連接列表
private List mWifiConfigurations;
// 定義一個WifiLock
private android.net.wifi.WifiManager.WifiLock mWifiLock;
//管理網絡連接
private http://blog.csdn.net/u012987546/article/details/ConnectivityManager connectManager;
//網絡連接
private NetworkInfo netInfo;
//動態主機配置協議信息的對象,獲得IP等網關信息
private DhcpInfo dhcpInfo;
/**
* 構造器
* @param context
*/
public WifiHelper(Context context) {
//取得WifiManager對象
mWifiManager = (android.net.wifi.WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
// 取得WifiInfo對象
mWifiInfo = mWifiManager.getConnectionInfo();
//獲取管理網絡連接對象
// connectManager = (http://blog.csdn.net/u012987546/article/details/ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
//獲取網絡連接對象
// netInfo = connectManager.getNetworkInfo(http://blog.csdn.net/u012987546/article/details/ConnectivityManager.TYPE_WIFI);
//獲取動態主機配置協議信息的對象
// dhcpInfo = mWifiManager.getDhcpInfo();
}
/**再次獲取wifi信息*/
public void reSetWifiInfo(){
// 取得WifiInfo對象
mWifiInfo = mWifiManager.getConnectionInfo();
}
/** 打開WIFI*/
public void openWifi() {
if (!mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(true);
}
}
/**關閉WIFI*/
public void closeWifi() {
if (mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(false);
}
}
/**
* 檢查當前WIFI狀態
* 1.WifiManager.WIFI_STATE_DISABLING: Wi-Fi已被禁用
* 2.WifiManager.WIFI_STATE_DISABLING: 無線網絡目前正在禁用
* 3.WifiManager.WIFI_STATE_ENABLED: Wi-Fi已啟用
* 4.WifiManager.WIFI_STATE_ENABLING:目前正在支持Wi-Fi
* 5.WifiManager.WIFI_STATE_UNKNOWN:無線網絡處於未知狀態
*/
public int getWifiState() {
return mWifiManager.getWifiState();
}
/**
* 返回最新的接入點(wifi)的結果
* ScanResult包含:
* ScanResult.level : wifi信號強度,值越大信號越強
* scanResult.frequency:wifi的頻率
* scanResult.SSID: wifi名稱
* scanResult.BSSID:wifi的BSSID
* ......
* @return
*/
public List startScanWifi() {
mWifiManager.startScan();
// 得到掃描結果
mWifiList = mWifiManager.getScanResults();
return mWifiList;
}
/**返回請求者配置的所有網絡的列表。*/
public List getConfiguredNetworks(){
// 得到配置好的網絡連接
mWifiConfigurations = mWifiManager.getConfiguredNetworks();
return mWifiConfigurations;
}
/** 得到MAC地址*/
public String getMacAddress() {
return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();
}
/**得到接入點的BSSID*/
public String getBSSID() {
return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();
}
/**得到IP地址*/
public int getIPAddress() {
return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();
}
/**得到連接的ID*/
public int getNetworkId() {
return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();
}
/**得到WifiInfo的所有信息包*/
public String getWifiInfo() {
return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();
}
/**添加一個網絡並連接*/
public void addNetworkWPA(String wifiName ,String wifiPassword) {
WifiConfiguration wifiConfiguration = CreateWifiInfo(wifiName, wifiPassword, 3);
int wcgID = mWifiManager.addNetwork(wifiConfiguration);
boolean b = mWifiManager.enableNetwork(wcgID, true);
Log.d(TAG,"wcgID="+wcgID);
Log.d(TAG,"b="+b);
}
/**斷開指定ID的網絡*/
public void disconnectWifi(int netId) {
mWifiManager.disableNetwork(netId);
mWifiManager.disconnect();
}
/**允許之前配置的網絡與關聯*/
public void enableNetwork(int netId){
mWifiManager.enableNetwork(netId,false);
}
/**創建一個wifi配置信息*/
private WifiConfiguration CreateWifiInfo(String SSID, String Password, int Type)
{
WifiConfiguration config = new WifiConfiguration();
config.allowedAuthAlgorithms.clear();
config.allowedGroupCiphers.clear();
config.allowedKeyManagement.clear();
config.allowedPairwiseCiphers.clear();
config.allowedProtocols.clear();
config.SSID = "\"" + SSID + "\"";
WifiConfiguration tempConfig = this.IsExsits(SSID);
if(tempConfig != null) {
mWifiManager.removeNetwork(tempConfig.networkId);
}
/**連接不需要密碼的wifi*/
if(Type == 1) //WIFICIPHER_NOPASS
{
config.wepKeys[0] = "\"\"";
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
}
/**連接wep格式加密wifi*/
if(Type == 2) //WIFICIPHER_WEP
{
config.hiddenSSID = true;
config.wepKeys[0]= "\""+Password+"\"";
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.wepTxKeyIndex = 0;
}
/**連接WPA格式加密wifi(就是我們平時使用的加密方法)*/
if(Type == 3) //WIFICIPHER_WPA
{
config.preSharedKey = "\""+Password+"\"";
config.hiddenSSID = true;
config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
//config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
config.status = WifiConfiguration.Status.ENABLED;
}
return config;
}
private WifiConfiguration IsExsits(String str){
List existingConfigs = mWifiManager.getConfiguredNetworks();
for (WifiConfiguration existingConfig : existingConfigs){
if (existingConfig.SSID.equals(str.trim())){
return existingConfig;
}
}
return null;
}
}
Android組件banner實現左右滑屏效果
什麼是banner組件?在許多Android應用上,比如愛奇藝客戶端、百度美拍、應用寶等上面,都有一個可以手動滑動的小廣告條,這就是banner,實際應用中的banner
Android屏幕適配攻略
一、屏幕適配的必要性為什麼Android需要適配?由於Android系統的開放性,任何用戶、開發者、OEM廠商、運營商都可以對Android進行定制,修改成他們想要的樣子
Fragment 多層嵌套方法調用問題的解決方案
Fragment的產生與介紹Android運行在各種各樣的設備中,有小屏幕的手機,超大屏的平板甚至電視。針對屏幕尺寸的差距,很多情況下,都是先針對手機開發一套App,然後
Android基礎入門教程——2.5.1 Toast(吐司)的基本使用
本節引言: 好的,終於學習完Adapter類相關的一些控件,當然除了講解的那幾個,還有其他很多的 相關的控件,就不慢慢講解了~有需要的自行查閱文檔,查看相關的