欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android10自動連接WiFi問題的解決

 更新時間:2020年03月30日 16:38:15   作者:中二大叔擼代碼  
這篇文章主要介紹了Android10自動連接WiFi問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

說明:

本文主要說明掃碼之后自動連接WiFi的一些處理,掃碼的流程相對簡單,網(wǎng)上教程也比較多,對于目前Android各個版本也沒有太多變化。

問題描述:

最近在做項目的時候,發(fā)現(xiàn)以前的項目有掃描二維碼自動連接WiFi的功能,設(shè)備改了生成二維碼的方式,然后發(fā)現(xiàn)手機無法自動連接WiFi了。

問題原因:

經(jīng)過代碼調(diào)試發(fā)現(xiàn):(我都是真機調(diào)試)

wifiManager.addNetwork(WifiConfiguration);

在添加WiFi的時候,這行代碼始終返回-1,換用同事手機竟然神奇的可以連接,然后一臉蒙蔽,裂開了,不怕有問題,就怕有的有問題,有的沒問題。

問題解決:

區(qū)別:我測試手機 小米10 android Q(andorid 10)的系統(tǒng),同事手機榮耀 android P的系統(tǒng),大膽猜測是不是android 10又搞了什么奇怪的東西

根因:皇天不負有心人,上代碼:

/**
   * Add a new network description to the set of configured networks.
   * The {@code networkId} field of the supplied configuration object
   * is ignored.
   * <p/>
   * The new network will be marked DISABLED by default. To enable it,
   * called {@link #enableNetwork}.
   *
   * @param config the set of variables that describe the configuration,
   *      contained in a {@link WifiConfiguration} object.
   *      If the {@link WifiConfiguration} has an Http Proxy set
   *      the calling app must be System, or be provisioned as the Profile or Device Owner.
   * @return the ID of the newly created network description. This is used in
   *     other operations to specified the network to be acted upon.
   *     Returns {@code -1} on failure.
   *
   * @deprecated
   * a) See {@link WifiNetworkSpecifier.Builder#build()} for new
   * mechanism to trigger connection to a Wi-Fi network.
   * b) See {@link #addNetworkSuggestions(List)},
   * {@link #removeNetworkSuggestions(List)} for new API to add Wi-Fi networks for consideration
   * when auto-connecting to wifi.
   * <b>Compatibility Note:</b> For applications targeting
   * {@link android.os.Build.VERSION_CODES#Q} or above, this API will always return {@code -1}.
   */
  @Deprecated
  public int addNetwork(WifiConfiguration config) {
    if (config == null) {
      return -1;
    }
    config.networkId = -1;
    return addOrUpdateNetwork(config);
  }

這是WifiManager.class中addNetwork方法的描述,注意注釋中最后一行

{@link android.os.Build.VERSION_CODES#Q} or above, this API will always return {@code -1}.

android Q或者更高的版本,這個方法始終返回-1,至此問題原因分析完畢,接下來開始解決:官網(wǎng)一頓操作:Android 10 的新方案如下連接:https://developer.android.google.cn/guide/topics/connectivity/wifi-bootstrap

 代碼如下:

public void test()
  {
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q)
    {
      NetworkSpecifier specifier =
          new WifiNetworkSpecifier.Builder()
              .setSsidPattern(new PatternMatcher("此處WiFi名稱", PatternMatcher.PATTERN_PREFIX))
              .setWpa2Passphrase("此處WiFi密碼")
              .build();
 
      NetworkRequest request =
          new NetworkRequest.Builder()
              .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
              .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
              .setNetworkSpecifier(specifier)
              .build();
 
      ConnectivityManager connectivityManager = (ConnectivityManager)
          context.getSystemService(Context.CONNECTIVITY_SERVICE);
 
      ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
        @Override
        public void onAvailable(Network network) {
          // do success processing here..
        }
 
        @Override
        public void onUnavailable() {
          // do failure processing here..
        }
      };
      connectivityManager.requestNetwork(request, networkCallback);
      // Release the request when done.
      // connectivityManager.unregisterNetworkCallback(networkCallback);
    }
  }

注:我用的是WPA的 加密模式,親測可用。至此完結(jié),撒花。

到此這篇關(guān)于Android10自動連接WiFi問題的解決的文章就介紹到這了,更多相關(guān)Android10自動連接WiFi內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Android中關(guān)于FragmentA嵌套FragmentB的問題

    Android中關(guān)于FragmentA嵌套FragmentB的問題

    這篇文章主要為大家詳細介紹了Android中關(guān)于FragmentA嵌套FragmentB的問題,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Flutter 中 Dart的Mixin示例詳解

    Flutter 中 Dart的Mixin示例詳解

    這篇文章主要介紹了Flutter 中 Dart的Mixin的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Android Studio插件之Jenkins插件詳解

    Android Studio插件之Jenkins插件詳解

    這篇文章主要為大家詳細介紹了Android Studio插件之Jenkins插件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 輕松實現(xiàn)可擴展自定義的Android滾輪時間選擇控件

    輕松實現(xiàn)可擴展自定義的Android滾輪時間選擇控件

    這篇文章主要為大家詳細介紹了可擴展自定義的Android滾輪時間選擇控件,結(jié)合WheelView實現(xiàn)滾輪選擇日期操作,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Jetpack?Compose?實現(xiàn)一個圖片選擇框架功能

    Jetpack?Compose?實現(xiàn)一個圖片選擇框架功能

    這篇文章主要介紹了Jetpack?Compose?實現(xiàn)一個圖片選擇框架,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 在Android中高效的加載大圖的方法示例

    在Android中高效的加載大圖的方法示例

    本篇文章主要介紹了在Android中高效的加載大圖的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Android中ImageView無法居中的問題解決方法

    Android中ImageView無法居中的問題解決方法

    做UI布局,尤其是遇到比較復(fù)雜的多重LinearLayout嵌套,常常會被一些比較小的問題困擾上半天,比如今天在使用ImageView的時候,想讓其居中顯示,可是無論怎樣設(shè)置layout_gravity屬性,都無法達到效果
    2013-06-06
  • Android ListView之setEmptyView正確使用方法

    Android ListView之setEmptyView正確使用方法

    這篇文章主要介紹了Android ListView之setEmptyView正確使用方法的相關(guān)資料,希望通過本文能幫助到大家使用該方法,需要的朋友可以參考下
    2017-09-09
  • Android 沉浸式狀態(tài)欄及懸浮效果

    Android 沉浸式狀態(tài)欄及懸浮效果

    這篇文章主要介紹了Android 沉浸式狀態(tài)欄及懸浮效果的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Android SharedPreferences存取操作以及封裝詳解

    Android SharedPreferences存取操作以及封裝詳解

    SharedPreferences是安卓平臺上一個輕量級的存儲類,用來保存應(yīng)用的一些常用配置,比如Activity狀態(tài),Activity暫停時,將此activity的狀態(tài)保存到SharedPereferences中;當Activity重載,系統(tǒng)回調(diào)方法onSaveInstanceState時,再從SharedPreferences中將值取出
    2021-11-11

最新評論