Native Androidでネットワーク状態と飛行機モードを監視するために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 >スナップショットバージョンの場合は、スナップショット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()
}WiFiを介してインターネット接続があるかどうかを検証します。
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 Receiver関数の構文を使用して、 OnNetworkChangedListener適用します。
networkValidator.setOnNetworkStateChangedListener { isOnline, _ ->
if (isOnline) {
contactRemoteServer()
}
}注: onNetworkChanged()コールバックとsetOnNetworkStateChangedListener {...}レシーバー機能はすべてバックグラウンドThreadで実行されます。つまり、ネットワークの変更に応答するユーザーインターフェイス関数は、Android Activityのような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 Receiver関数の構文を使用して、 OnAirplaneModeSwitchListenerを適用します。
networkValidator.setOnAirplaneModeSwitchListener { isOnline, _ ->
if (isOnline) {
contactRemoteServer()
}
}また、 onChanged()コールバックとsetOnAirplaneModeSwitchListener {...}レシーバー機能はすべてバックグラウンドThreadで実行されるため、飛行機モードの変更に応答するユーザーインターフェイス関数は、 OnNetworkChangedListenerと同じようにUI Threadで実行する必要があります。
注: NetworkValidator 、飛行機モード変更イベントの受信を処理する内部BroadcastReceiverを使用し、 OnAirplaneModeSwitchListenerインスタンスが定義されているときに自動的に登録されます。 OnAirplaneModeSwitchListenerが無効にされると、未登録と無効化されます。
(詳細については、ライブラリコードを参照してください)
ただし、この内部BroadcastReceiver 、 NetworkValidatorメモリリークを避けるために使用されていない場合に登録されていない必要があります。
Android Activityでは、そうすることができます:
override fun onResume () {
super .onResume()
networkValidator.registerAirplaneModeSwitchListener
}
override fun onPause () {
super .onPause()
networkValidator.unregisterAirplaneModeSwitchListener
} Kotlin Extension Receiver関数( 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 ();
}WiFiを介してインターネット接続があるかどうかを検証します。
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() | ブール | WiFiを介してインターネット接続が利用可能であるかどうかを検証します。 |
isCellularAvailable() | ブール | モバイルデータを介してインターネット接続が利用可能であるかどうかを検証します。 |
isAirplaneModeActive() | ブール | 検証は、飛行機モードがアクティブです。 |
unregisterAirplaneModeSwitchListener() | ユニット | Unregisters onAirplaneModeSwitchListenerは、飛行機モードイベントを聴くことを聴きます。 |
registerAirplaneModeSwitchListener() | ユニット | onAirplaneModeSwitchListenerを登録して、飛行機モードイベントのリスニングを開始します。 |
setOnNetworkStateChangedListener(execute: OnNetworkChangedListener.(Boolean, Network) -> Unit) | ユニット | ネットワーク変更リスナーを設定します。 |
setOnAirplaneModeSwitchListener(execute: OnAirplaneModeSwitchListener.(Boolean) -> Unit) | ユニット | 飛行機モードスイッチリスナーを設定します。 |
貢献者は大歓迎です!
注:このリポジトリは2つのブランチに分割されます。
開発されたすべての実装と提案された変更は開発ブランチにプッシュされ、最終的に更新がメインブランチにプッシュされます。
現在の開発が行われているかどうかに注意してください。開発部門には、メインブランチよりも多くのコミットがあります。
詳細については、貢献を確認してください。
より多くのバージョンの履歴は、変更ログファイルから入手できます。
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.