編輯:關於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*/ ListscanResults = wifiManager.startScanWifi();
/** * Description : * Author : liujun * Email : [email protected] * 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 ListmWifiList; // 網絡連接列表 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; } }
什麼是banner組件?在許多Android應用上,比如愛奇藝客戶端、百度美拍、應用寶等上面,都有一個可以手動滑動的小廣告條,這就是banner,實際應用中的banner
一、屏幕適配的必要性為什麼Android需要適配?由於Android系統的開放性,任何用戶、開發者、OEM廠商、運營商都可以對Android進行定制,修改成他們想要的樣子
Fragment的產生與介紹Android運行在各種各樣的設備中,有小屏幕的手機,超大屏的平板甚至電視。針對屏幕尺寸的差距,很多情況下,都是先針對手機開發一套App,然後
本節引言: 好的,終於學習完Adapter類相關的一些控件,當然除了講解的那幾個,還有其他很多的 相關的控件,就不慢慢講解了~有需要的自行查閱文檔,查看相關的