NetworkInfoはAPI29から非推奨になりました。
テキストはNetworkInfoを使っているので代替手段を探しました。
めっちゃ時間かかって、もうAndroidとかPHPとかLaravelとか何者なのか忘れてしまいました。
さて、リファレンスでは、ConnectivityManager.NetworkCallback APIをよく読んで、ConnectivityManager#getNetworkCapabilities とか ConnectivityManager#getLinkProperties とかを検討してね!ってことらしいので、getNetworkCapabilities でいいのかな?
ConnectivityManager.getNetworkCapabilities
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ネットワークの接続状態を知らせるクラスオブジェクト manager を取得!
// getActiveNetwork で、現在デフォルトで接続してるネットワークオブジェクトを取得!
// capabilities 無線接続ポイントや接続に関するキャリアのサービス、通信接続のタイプなど、いろんな接続情を確認できる!
ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
Network network = manager.getActiveNetwork();
NetworkCapabilities capabilities = manager.getNetworkCapabilities(network);
// wifiだったら
if(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){
Log.d("TRANSPORT","WIFI");
}
// 携帯通信だったら
if(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)){
Log.d("TRANSPORT","CELLULAER");
}
Log.d("TRANSPORT", String.valueOf(capabilities));
}
}
ネット接続で確認したい状態定数(NetworkCapabilities.TRANSORT_CELLULAR
とか)は
https://developer.android.com/reference/android/net/NetworkCapabilities.html#TRANSPORT_WIFI