네이티브 안드로이드에서 네트워크 상태 및 비행기 모드 모니터링을 위해 Kotlin에서 작성된 경량 모듈.
NetworkValidator는 실시간 네트워크 가용성 및 비행기 모드 모니터링을 제공합니다.



전류 버전 : 1.0.0-snapshot
implementation ' io.github.iodevblue:networkvalidator:current-version '< dependency >
< groudId > io.github.iodevblue </ groudId >
< artifactId > parallaxnavigationdrawer </ artifactId >
< version > current-version </ version >
</ dependency >스냅 샷 버전 인 경우 Snapshot Maven Nexus OSS 리포지토리를 추가하십시오.
maven {
url ' https://s01.oss.sonatype.org/content/repositories/snapshots/ '
}그런 다음 사본을 검색합니다.
implementation ' io.github.iodevblue:parallaxnavigationdrawer:current-version 'libs 폴더에 배치하고 프로젝트에 설치하십시오. implementation fileTree( dir : ' libs ' , include : ' *jar ' )참고 : 최소 지원 Android SDK 버전 = 23
Context 사용하여 NetworkValidator 인스턴스를 만듭니다.
val networkValidator = NetworkValidator (context)장치에 인터넷 연결이 있는지 확인하십시오.
val isOnline = networkValidator.isOnline()
if (isOnline) {
retrieveFromRemoteRepo()
} else {
retrieveFromLocalCache()
}Wi -Fi를 통해 인터넷 연결이 있는지 확인하십시오.
val isWifiAvail = networkValidator.isWifiAvailable()
if (isWifiAvail) {
startPackageDownloading()
} else {
informUser()
}모바일 데이터를 통해 인터넷 연결이 있는지 확인하십시오.
val isMobileDataOn = networkValidator.isCellularAvailable()
if (isMobileDataOn) {
connectToServer()
} else {
disconnectFromServer()
}
비행기 모드가 켜져 있는지 확인하십시오.
val isOnAirplane = networkValidator.isAirplaneModeActive()
if (isOnAirplane) {
disconnectFromServer()
} else {
doSomethingRemotely()
}
장치에서 인터넷 가용성의 변경 사항 (WiFi 및 모바일 데이터 모두)을 듣으려면 OnNetworkChangedListener 인스턴스를 설정하십시오.
val networkValidator = NetworkValidator (context)
networkValidator.onNetworkChangedListener = object : NetworkValidator . OnNetworkChangedListener {
override fun onNetworkChanged ( isOnline : Boolean , network : Network ) {
if (isOnline) {
contactRemoteServer()
}
}
} 또는 Kotlin 수신기 함수 구문을 사용하여 OnNetworkChangedListener 적용하십시오.
networkValidator.setOnNetworkStateChangedListener { isOnline, _ ->
if (isOnline) {
contactRemoteServer()
}
} 참고 : onNetworkChanged() 콜백 및 setOnNetworkStateChangedListener {...} 수신기 기능은 모두 백그라운드 Thread 에서 실행됩니다. 즉, 네트워크 변경에 응답하는 사용자 인터페이스 기능은 Android Activity 에서 SO와 같은 UI Thread 에서 실행 해야합니다 .
networkValidator.onNetworkChangedListener = object : NetworkValidator . OnNetworkChangedListener {
override fun onNetworkChanged ( isOnline : Boolean , network : Network ) {
runOnUiThread {
if (isOnline) {
contactRemoteServer()
}
}
}
} 비행기 모드 변경을 듣으려면 OnAirplaneModeSwitchListener 인스턴스를 설정하십시오.
networkValidator.onAirplaneModeSwitchListener = object : NetworkValidator . OnAirplaneModeSwitchListener {
override fun onChanged ( turnedOn : Boolean ) {
if (turnedOn) {
pauseRemoteConnection()
}
}
} 또는 Kotlin 수신기 함수 구문을 사용하여 OnAirplaneModeSwitchListener 적용하십시오.
networkValidator.setOnAirplaneModeSwitchListener { isOnline, _ ->
if (isOnline) {
contactRemoteServer()
}
} 또한 onChanged() 콜백 및 setOnAirplaneModeSwitchListener {...} 수신기 기능은 모두 백그라운드 Thread 에서 실행되므로 비행기 모드 변경에 응답하는 사용자 인터페이스 기능은 OnNetworkChangedListener 와 동일한 방식으로 UI Thread 에서 실행 해야합니다 .
참고 : NetworkValidator 비행기 모드 변경 이벤트를 수신하는 내부 BroadcastReceiver 사용하며 OnAirplaneModeSwitchListener 인스턴스가 정의 될 때 자동으로 등록됩니다. OnAirplaneModeSwitchListener 무효화 될 때 등록되지 않고 무효화됩니다.
(자세한 내용은 라이브러리 코드 참조)
그러나 NetworkValidator 메모리 누출을 피하기 위해 사용하지 않을 때는이 내부 BroadcastReceiver 등록해야합니다.
안드로이드 Activity 에서는 그렇게 할 수 있습니다.
override fun onResume () {
super .onResume()
networkValidator.registerAirplaneModeSwitchListener
}
override fun onPause () {
super .onPause()
networkValidator.unregisterAirplaneModeSwitchListener
} Kotlin Extension 수신기 기능 ( Context 의 확장)도 포함되어 프롬프트 설정을 지원합니다.
networkValidator{} 유효한 NetworkValidator 인스턴스를 반환합니다.
networkValidator {
setOnNetworkStateChangedListener { b, _ ->
runOnUiThread {
tv.text = resources.getString( R .string.detect_network)
showProgress()
updateNetworkState(b)
}
}
} listenForNetwork{} 내부적으로 NetworkValidator를 생성하고 즉시 듣기 시작하는 OnNetworkChangedListener 등록합니다.
listenForNetwork { b, network ->
if (b) {
updateNetworkState(b)
reInitializeRemoteConnection()
} else {
invalidateRemoteConnection()
informUser()
}
} listenForAirplaneModeChanges{} NetworkValidator를 반환하고 즉시 듣기 시작하는 OnAirplaneModeSwitchListener 를 등록합니다.
val networkValidator = listenForAirplaneModeChanges {
if (it) {
cancelRemoteConnection()
} else {
reInitializeRemoteConnection()
}
} 그런 다음 반환 된 NetworkValidator 인스턴스를 사용하여 내부 BroadcastReceiver register() 하고 unregister() 할 수 있습니다.
이 모듈은 Java와 완전히 상호 운용 할 수 있습니다.
참고 : Java에서는 확장 기능이 적용되지 않습니다.
NetworkValidator 인스턴스 생성 :
NetworkValidator networkValidator = new NetworkValidator ( this );장치에 인터넷 연결이 있는지 확인하십시오.
boolean isOnline = networkValidator . isOnline ();
if ( isOnline ) {
retrieveFromRemoteRepo ();
} else {
retrieveFromLocalCache ();
}Wi -Fi를 통해 인터넷 연결이 있는지 확인하십시오.
boolean isWifiAvail = networkValidator . isWifiAvailable ();
if ( isWifiAvail ) {
startPackageDownloading ();
} else {
informUser ();
}모바일 데이터를 통해 인터넷 연결이 있는지 확인하십시오.
boolean isMobileDataOn = networkValidator . isCellularAvailable ();
if ( isMobileDataOn ) {
connectToServer ();
} else {
disconnectFromServer ();
}비행기 모드가 켜져 있는지 확인하십시오.
boolean isOnAirplane = networkValidator . isAirplaneModeActive ();
if ( isOnAirplane ) {
disconnectFromServer ();
} else {
doSomethingRemotely ();
} 장치에서 인터넷 가용성의 변경 사항 (WiFi 및 모바일 데이터 모두)을 듣으려면 OnNetworkChangedListener 인스턴스를 설정하십시오.
NetworkValidator networkValidator = new NetworkValidator ( this );
networkValidator . setOnNetworkChangedListener (( isOnline , network ) -> {
if ( isOnline ) {
contactRemoteServer ();
}
} 비행기 모드 변경을 듣으려면 OnAirplaneModeSwitchListener 인스턴스를 설정하십시오.
networkValidator . setOnAirplaneModeSwitchListener ( turnedOn -> {
if ( turnedOn ) {
pauseRemoteConnection ();
}
}구성 :
| 변하기 쉬운 | 기본 | 사용 |
|---|---|---|
onNetworkChangedListener | 널 | 네트워크 상태 변경에 대한 리스너. |
onAirplaneModeSwitchListener | 널 | 비행기 모드가 변경됩니다. |
| 방법 | 보고 | 사용 |
|---|---|---|
isOnline() | 부울 | 인터넷 연결이 있는지 확인합니다. |
isWifiAvailable() | 부울 | Wi -Fi를 통해 인터넷 연결을 사용할 수 있는지 확인합니다. |
isCellularAvailable() | 부울 | 모바일 데이터를 통해 인터넷 연결을 사용할 수 있는지 확인합니다. |
isAirplaneModeActive() | 부울 | 유효성은 비행기 모드가 활성화되어 있습니다. |
unregisterAirplaneModeSwitchListener() | 단위 | onAirplaneModeSwitchListener 비행기 모드 이벤트를 듣지 못하게합니다. |
registerAirplaneModeSwitchListener() | 단위 | onAirplaneModeSwitchListener 등록하여 비행기 모드 이벤트를 듣기 시작합니다. |
setOnNetworkStateChangedListener(execute: OnNetworkChangedListener.(Boolean, Network) -> Unit) | 단위 | 네트워크 변경 리스너를 설정합니다. |
setOnAirplaneModeSwitchListener(execute: OnAirplaneModeSwitchListener.(Boolean) -> Unit) | 단위 | 비행기 모드 스위치 리스너를 설정합니다. |
기고자들은 환영합니다!
참고 : 이 저장소는 두 가지 지점으로 나뉩니다.
모든 개발 구현 및 제안 된 변경 사항은 개발 지점으로 푸시되며 최종 업데이트는 메인 브랜치로 푸시됩니다.
현재 개발이 이루어지면 주 지점보다 개발 지점에 더 많은 커밋이있을 것입니다.
자세한 내용은 기여한 정보를 확인하십시오.
변경 로그 파일에서 더 많은 버전 기록을 얻을 수 있습니다.
Copyright 2023 IO DevBlue
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.