2017-01-24 1 views

Antwort

2

Werfen Sie einen Blick hier ->How to determine if network type is 2G, 3G or 4G

getNetworkType() kehren Sie die NETWORK_TYPE_xxxx für die aktuelle Datenverbindung, wählte ich diese Methode unter den Antworten für meine Arbeit, add whateve r die Netzwerktypen, die Sie unter diesen Schalter Fälle filtern möchten

können Sie diese folgende Methode setzen direkt in Ihrer Klasse Utility:

public String getNetworkClass(Context context) { 
     TelephonyManager mTelephonyManager = (TelephonyManager) 
       context.getSystemService(Context.TELEPHONY_SERVICE); 
     int networkType = mTelephonyManager.getNetworkType(); 
     switch (networkType) { 
      case TelephonyManager.NETWORK_TYPE_GPRS: 
      case TelephonyManager.NETWORK_TYPE_EDGE: 
      case TelephonyManager.NETWORK_TYPE_CDMA: 
      case TelephonyManager.NETWORK_TYPE_1xRTT: 
      case TelephonyManager.NETWORK_TYPE_IDEN: 
       return "2G"; 
      case TelephonyManager.NETWORK_TYPE_UMTS: 
      case TelephonyManager.NETWORK_TYPE_EVDO_0: 
      case TelephonyManager.NETWORK_TYPE_EVDO_A: 
      case TelephonyManager.NETWORK_TYPE_HSDPA: 
      case TelephonyManager.NETWORK_TYPE_HSUPA: 
      case TelephonyManager.NETWORK_TYPE_HSPA: 
      case TelephonyManager.NETWORK_TYPE_EVDO_B: 
      case TelephonyManager.NETWORK_TYPE_EHRPD: 
      case TelephonyManager.NETWORK_TYPE_HSPAP: 
       return "3G"; 
      case TelephonyManager.NETWORK_TYPE_LTE: 
       return "4G"; 
      default: 
       return "Unknown"; 
     } 
    } 

Lesen Sie das Dokument, das mit sauberen & klar ->https://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkType()

bearbeiten

Wenn Sie wollen einen Scan tun Sie eine BroadcastReceiver erstellen müssen für Wifi Scan-Ergebnisse zu hören: und Filter mit NETWORK_TYPE_LTE

private final BroadcastReceiver mWifiScanReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context c, Intent intent) { 
     if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { 
      List<ScanResult> mScanResults = mWifiManager.getScanResults(); 
      // add your logic here to filter 
     } 
    } 
} 

In onCreate() Sie mWifiManager und initiieren einen Scan zuordnen würde:

mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
registerReceiver(mWifiScanReceiver, 
     new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
mWifiManager.startScan(); 
+0

Danke für deine Antwort, aber das ist nicht meine Frage, der Punkt ist ** Gerät ist nicht verbunden ** und ich möchte überprüfen, ob das Gerät das 4G-Netzwerk unterstützt. –

+0

Dafür benötigen Sie eine App? Es ist dort auf der Gerätespezifikation –

+0

Danke für Ihre Antwort, aber Ihre Antwort ist für die Suche nach Wifi nicht für 4G LTE! –

0
public String getNetworkClass(Context context) { 
     TelephonyManager mTelephonyManager = (TelephonyManager) 
       context.getSystemService(Context.TELEPHONY_SERVICE); 
     int networkType = mTelephonyManager.getNetworkType(); 
     switch (networkType) { 
      case TelephonyManager.NETWORK_TYPE_GPRS: 
      case TelephonyManager.NETWORK_TYPE_EDGE: 
      case TelephonyManager.NETWORK_TYPE_CDMA: 
      case TelephonyManager.NETWORK_TYPE_1xRTT: 
      case TelephonyManager.NETWORK_TYPE_IDEN: 
       return "2G"; 
      case TelephonyManager.NETWORK_TYPE_UMTS: 
      case TelephonyManager.NETWORK_TYPE_EVDO_0: 
      case TelephonyManager.NETWORK_TYPE_EVDO_A: 
      case TelephonyManager.NETWORK_TYPE_HSDPA: 
      case TelephonyManager.NETWORK_TYPE_HSUPA: 
      case TelephonyManager.NETWORK_TYPE_HSPA: 
      case TelephonyManager.NETWORK_TYPE_EVDO_B: 
      case TelephonyManager.NETWORK_TYPE_EHRPD: 
      case TelephonyManager.NETWORK_TYPE_HSPAP: 
       return "3G"; 
      case TelephonyManager.NETWORK_TYPE_LTE: 
       return "4G"; 
      default: 
       return "Unknown"; 
     } 
    } 


Also, I would first check if connected network is WiFi or Mobile. 

    public static boolean getActiveNetworkType(Context context) { 
      boolean is_wfi_conected = false; 
      ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
      if (activeNetwork != null && activeNetwork.isConnected() && activeNetwork.isAvailable()) { // connected to the internet 
       if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) { 
        // connected to Wifi 
        //GET IP Address of connected WIFI 
        // WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
        is_wfi_conected = true; 


       } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) { 
        is_wfi_conected = false; 
       } 
      } else { 
       // not connected to the internet 
      } 
      return is_wfi_conected; 
     }