Android 10 와 이 파이 자동 연결 문제 해결

설명:
본 고 는 코드 를 스 캔 한 후에 와 이 파 이 를 자동 으로 연결 하 는 처 리 를 설명 한다.스 캔 의 절차 가 상대 적 으로 간단 하고 인터넷 튜 토리 얼 도 비교적 많 으 며 현재 안 드 로 이 드 각 버 전에 도 많은 변화 가 없다.
질문 설명:
최근 프로젝트 를 진행 하 던 중 이전 프로젝트 에 QR 코드 를 스 캔 해 와 이 파 이 를 자동 으로 연결 하 는 기능 이 있 었 고,장치 가 QR 코드 를 생 성 하 는 방식 을 바 꾼 뒤 휴대 전화 가 와 이 파 이 를 자동 으로 연결 하지 못 하 는 것 을 발견 했다.
문제 의 원인:
코드 디 버 깅 을 통 해 발견:(나 는 모두 실제 디 버 깅)

wifiManager.addNetwork(WifiConfiguration);
와 이 파 이 를 추가 할 때 이 코드 는 항상-1 로 되 돌아 갑 니 다.동료 휴대 전화 로 신기 하 게 연결 할 수 있 습 니 다.그리고 얼굴 이 가 려 지고 갈 라 집 니 다.문제 가 있 을 까 봐 문제 가 있 을 까 봐 걱정 하지 않 습 니 다.문제 가 있 을 까 봐 걱정 합 니 다.
문제 해결:
핸드폰 테스트 좁쌀 android Q(andorid 10)시스템,동료 휴대 전화 영광 android P 의 시스템,안 드 로 이 드 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 로 돌아 갑 니 다.이 문제 의 원인 분석 이 끝 났 습 니 다.그 다음 에 해결 을 시작 합 니 다.홈 페이지 의 한 번 조작:Android 10 의 새로운 방안 은 다음 과 같다.
 코드 는 다음 과 같 습 니 다:

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 를 사용 합 니 다. 암호 화 모드,직접 측정 가능.여기 서 끝나 면 꽃 을 뿌 려 라.
안 드 로 이 드 10 자동 연결 와 이 파이 문제 해결 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 10 자동 연결 와 이 파이 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기