91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有關WiFi SSID的獲取

發布時間:2020-07-29 16:48:51 來源:網絡 閱讀:5284 作者:wy521angel 欄目:移動開發

    許久沒有做一些總結了,最近項目有些忙。

    在獲取Android終端連接WiFi的SSID時(也就是你當前手機連接的無線網名稱),發現了一個問題,不同的Android版本下獲取到的SSID是有一些差別的,當然名字不會變。

    舉個例子,比如我配置了WiFi的名稱是haha,有些手機獲取到的就是haha,而有些獲取到的卻是"haha"——加了雙引號。有這么一個需求,控制用戶連接指定的WiFi。假定允許連接的WiFi列表里面有haha,hehe,houhou,huhu四個,如果獲取到用戶當前連接的WiFi名稱是haha,那是允許用戶連接上去的,如果獲取到的是"haha",呃……也應該允許用戶連接的,但是haha和"haha"兩者,代碼里做比較是不同的,事實上獲取到"haha"名稱的用戶,連不上WiFi。(唉,按規定連接了你允許連接的WiFi,還是上不去,用戶我也只能呵呵了)。

    有人說可以查找一下用戶連接的WiFi名稱,如果發現里面有雙引號,那就去掉。這樣并不妥,如果WiFi本來的名稱便帶有雙引號呢?事實上應該從手機的Android版本來判斷,先看一下獲取WiFi SSID的方法:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
final String ssid = wifiInfo.getSSID();

    getSSID()獲取到的SSID名稱和手機的Android版本有關,如果是Android 4.2(API Level = 17)及其以上的版本,獲取到的SSID名稱是有雙引號的,即"haha",如果是Android 4.2以下的版本,獲取到的SSID名稱沒有雙引號,即haha。我寫了一個方法,根據終端的Android版本來去掉雙引號,以便使不同Android版本的用戶獲取到的SSID名稱,可以匹配到WiFi列表里面允許連接的SSID。

    布局文件的代碼是比較簡單的,就不貼了,兩個TextView,分別顯示直接獲取到的SSID名稱和去掉雙引號之后的SSID名稱,一個Button,點擊后獲取到當前終端連接的SSID。

    Java代碼如下:

package com.example.ssidtest;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class ShowSSIDActivity extends Activity {

 private int deviceVersion;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_show_ssid);
  WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
  WifiInfo wifiInfo = wifiManager.getConnectionInfo();
  final String ssid = wifiInfo.getSSID();
  
  findViewById(R.id.btn).setOnClickListener(new OnClickListener() {
  
   @Override
   public void onClick(View v) {
   
    ((TextView) findViewById(R.id.txt1)).setText(ssid);
    ((TextView) findViewById(R.id.txt2))
      .setText(whetherToRemoveTheDoubleQuotationMarks(ssid));
   }
  });
 }
 
 //根據Android的版本判斷獲取到的SSID是否有雙引號
 public String whetherToRemoveTheDoubleQuotationMarks(String ssid) {
 
  //獲取Android版本號
  deviceVersion = Build.VERSION.SDK_INT;
  
  if (deviceVersion >= 17) {
  
   if (ssid.startsWith("\"") && ssid.endsWith("\"")) {
   
    ssid = ssid.substring(1, ssid.length() - 1);
   }
   
  }
  return ssid;
 }
 
}

    其中,whetherToRemoveTheDoubleQuotationMarks(String ssid)便是根據終端版本號判斷是否需要去掉雙引號。

    最后別忘了獲取SSID是要在manifest文件里面添加如下權限的:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    效果圖:

    我的一個終端的系統版本和獲取到的SSID名稱:


有關WiFi SSID的獲取

有關WiFi SSID的獲取

    這個終端的版本是Android 4.3 ,獲取到的SSID名稱是加了雙引號的,沒錯,你看到的無線網名字就是"G.E.M",我是鄧紫棋的粉絲;

    另一個終端的系統版本和獲取到的SSID名稱:

有關WiFi SSID的獲取

有關WiFi SSID的獲取

    這個終端的版本是Android 4.1.2 ,獲取到的SSID名稱沒有加雙引號。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

锡林郭勒盟| 通江县| 子洲县| 廊坊市| 武强县| 伊金霍洛旗| 武川县| 安宁市| 张家界市| 江都市| 同仁县| 义马市| 呼图壁县| 东兴市| 连山| 南靖县| 德阳市| 黔南| 太仓市| 新化县| 兴义市| 文水县| 石阡县| 平塘县| 海原县| 丰台区| 龙胜| 台南市| 唐海县| 迁西县| 吐鲁番市| 敦煌市| 铜梁县| 黄石市| 新乐市| 雷波县| 南丰县| 定州市| 信丰县| 平安县| 黄山市|