「データ ネットワーク モード」または「モバイル データ」が現在アクティブになっていない場合でも、アプリで有効になっているかどうかを確認したい。つまり、電話が現在 WiFi 経由で接続されている場合でも、アプリがモバイル データ料金を発生させる可能性があるかどうかを確認する必要があります。
グーグルで「モバイルデータ」が「アクティブ」かどうかを確認する次のコードを見つけました。
ConnectivityManager cm =
(ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isMobile = activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE;
このコードの問題は、WiFi がアクティブな場合、オンに切り替えてもモバイル データがアクティブとして報告されないことです。
このコードのように、現在アクティブな接続モードであるかどうかではなく、モバイル データが「有効」であり、したがって潜在的にアクティブであるかどうかを判断するようにコードを変更できますか?