Android P wifi PNO 검색
3413 단어 Android자잘 한 지식 기록
네 가지 장면
화면 상태:
WiFi Settings , WiFi , 10s。
WiFi Settings , WiFi , 2 , 20s, 160s.
, :interval*(2^n) .
화면 꺼 짐 상황: 저 장 된 네트워크 가 있 고 연결 되 어 있 으 며 스 캔 하지 않 습 니 다. 저 장 된 네트워크 가 있 고 연결 이 없습니다. PNO 스 캔 (저 장 된 네트워크 만 스 캔), 간격 min = 20s max = 160 s
기타 상황: 네트워크 를 저장 하지 않 았 을 때 고정 스 캔 시간 간격 은 5min 입 니 다.밝 은 화면 상황 WiFi 설정 인터페이스
WiFi Setting 인터페이스 에 들 어 갈 때 Activity 에 대응 하 는 onResume () 을 호출 합 니 다.
onResume -> WifiSettings.java
mWifiTracker.startTracking ->
startTracking -> WifiTracker.java
resumeScanning ->
mScanner.resume ->
resume->
sendEmptyMessage(MSG_SCAN); ->
handleMessage -> //Scanner
mWifiManager.startScan -> // WiFi Service 。
sendEmptyMessageDelayed(0, WIFI_RESCAN_INTERVAL_MS); //
WIFI_RESCAN_INTERVAL_MS 는 기본적으로 10 초 로 정의 합 니 다.
// Combo scans can take 5-6s to complete - set to 10s.
private static final int WIFI_RESCAN_INTERVAL_MS = 10 * 1000;
와 이 파이 Setting 과 비 Settings 인터페이스의 스 캔 은 병존 작업 에 관여 하지 않 습 니 다. 그 중에서 35 초 와 75 초 는 비 와 이 파이 인터페이스의 주기 스 캔 입 니 다. 40 초 간격 으로 두 번 째 (20 x 2) 스 캔 임 을 설명 합 니 다.다른 것 은 와 이 파이 Settings 인터페이스 에서 10 초 에 한 번 씩 스 캔 합 니 다.비 WiFi 설정 인터페이스
// Start a connectivity scan. The scan method is chosen according to
// the current screen state and WiFi state.
startConnectivityScan ->
startPeriodicScan -> //mScreenOn true
mPeriodicSingleScanInterval = PERIODIC_SCAN_INTERVAL_MS; // 20s
startPeriodicSingleScan ->
mPeriodicSingleScanInterval *= 2; // , , MAX_PERIODIC_SCAN_INTERVAL_MS 160s
startSingleScan ->
mScanner.startScan //
화면 꺼 짐 상황
startConnectivityScan ->
startConnectedPnoScan -> //screenOff WiFi
scanSettings.periodInMs = CONNECTED_PNO_SCAN_INTERVAL_MS; // 160S
mScanner.startConnectedPnoScan ->
startPnoScan
startDisconnectedPnoScan -> //screenOff WiFi
scanSettings.periodInMs = DISCONNECTED_PNO_SCAN_INTERVAL_MS; // 20S
mScanner.startDisconnectedPnoScan ->
startPnoScan
네트워크 상태 저장 하지 않 음
class DisconnectedState extends State {
/**
* If we have no networks saved, the supplicant stops doing the periodic scan.
* The scans are useful to notify the user of the presence of an open network.
* Note that these are not wake up scans.
*/
if (mNoNetworksPeriodicScan != 0 && !mP2pConnected.get()
&& mWifiConfigManager.getSavedNetworks().size() == 0) {
sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,
++mPeriodicScanToken, 0), mNoNetworksPeriodicScan);
}
}
mNoNetworksPeriodicScan 의 값 은 frameworks / base / core / res / res / values / config. xml 에 정의 되 었 습 니 다.
300000
5min 으로 보 여요.
Android wifi 스 캔 메커니즘 (Android O):https://blog.csdn.net/h784707460/article/details/79658950 Android wifi PNO 스 캔 프로 세 스 (Andriod O):https://blog.csdn.net/h784707460/article/details/79702275
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.