問題

私は自分のモバイルが使用するインターネット接続のタイプ(Cellularまたはwifi)を知りたい。

 Network network;  
manager = (ConnectivityManager) this.getSystemService(this.CONNECTIVITY_SERVICE);
manager.getActiveNetworkInfo();

if (manager != null){
if (manager.getNetworkCapabilities(network).hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)){
Toast.makeText(this, "Mobile Internet", Toast.LENGTH_SHORT).show();
         }
     }
 

エラーメッセージは言う:

(nullオブジェクト参照で仮想メソッド 'booleanandroid.net.NetworkCapabilities.hasTransport(int)'を呼び出すAttempt)。

  ベストアンサー

これを試して

 String networkStatus ="";
final ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
//Check Wifi
final android.net.NetworkInfo wifi = manager.getActiveNetworkInfo();
//Check for mobile data
final android.net.NetworkInfo mobile = manager.getActiveNetworkInfo();

if( wifi.getType() == ConnectivityManager.TYPE_WIFI) {
    networkStatus = "wifi";
}else if(mobile.getType() == ConnectivityManager.TYPE_MOBILE){
    networkStatus = "mobileData";
}else{
    networkStatus="noNetwork";
}
return networkStatus;
 

  同じタグがついた質問を見る

androidmobilewifiandroid-connectivitymanager