[解決済み] ConnectivityManager.CONNECTIVITY_ACTION 非推奨
2022-10-11 17:13:52
質問
Android N では、公式サイトに「Android N をターゲットとするアプリは CONNECTIVITY_ACTION ブロードキャストを受信しない」と記載されています。また、以下のような記載もあります。
JobScheduler
を代替に使用することができます。しかし
JobScheduler
とは全く同じ動作をするわけではありません。
CONNECTIVITY_ACTION
ブロードキャストと全く同じ動作を提供するわけではありません。
私のAndroidアプリケーションでは、デバイスのネットワークの状態を知るために、このブロードキャストを使用していました。私は、この状態が
CONNECTING
なのか、それとも
CONNECTED
の助けを借りて
CONNECTIVITY_ACTION
を放送し、それは私の要件に最も適していました。
現在では非推奨となっていますが、現在のネットワークの状態を取得するための代替方法をどなたか教えていただけませんか?
どのように解決するのですか?
非推奨となるのは、バックグラウンドで動作するアプリケーションがネットワーク接続の状態変化を受け取る機能です。
として David Wasser が言ったように、アプリコンポーネントがインスタンス化され (破棄されない)、かつ プログラムによって受信者を登録した場合 マニフェストで行うのではなく、そのコンテキストでプログラム的にレシーバーを登録します。
または ネットワーク コールバック を代わりに使用することもできます。特に onAvailable をオーバーライドする必要があります。
早速、スニペットを起草してみます。
public class ConnectionStateMonitor extends NetworkCallback {
final NetworkRequest networkRequest;
public ConnectionStateMonitor() {
networkRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build();
}
public void enable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
connectivityManager.registerNetworkCallback(networkRequest, this);
}
// Likewise, you can have a disable method that simply calls ConnectivityManager.unregisterNetworkCallback(NetworkCallback) too.
@Override
public void onAvailable(Network network) {
// Do what you need to do here
}
}
関連
-
[解決済み] Android getResources().getDrawable() 非推奨 API 22
-
[解決済み] Android 6.0 Marshmallow (API 23) で getColor(int id) が非推奨になりました。
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] アンドロイドアプリのユーザーデータを消去する
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] Android - Snackbar vs Toast - 使い方と違い。
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] アンドロイドでシェイクを検出するには?
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] ViewPager2でスワイプを無効にするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Androidでインターネット接続を確認するには?InetAddressがタイムアウトしない
-
[解決済み] ConnectivityManager getNetworkInfo(int) deprecated
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] プログラム的に電話をかけるには?
-
[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] アンドロイドでシェイクを検出するには?
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] Recyclerviewと異なるタイプの行のインフレーションの処理
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信