2016-11-01 12 views
0

Ich versuche, das aktuelle Frequenzband zu finden.Android - Brauchen Sie Hilfe, um Frequenzband

Ich habe viel gelesen zu diesem Thema in den letzten Tagen, aber ich habe nichts gefunden. Ich brauche eine Lösung dafür (Code keine App).

Wenn ich auf diese Daten zugreifen kann, indem ich Root-Zugriff bekomme, ist es auch OK.

+2

Bitte angeben, was "Frequenzband" meinst du? Ist das GSM-Frequenzband? –

+0

Ich muss wissen, ob ich auf 2g 850/900/1800/1900 oder 3g 2100/1900/1700/850/800 oder FDD-LTE 2100/1900/1700/850/2600/900/800/700 oder TDD bin -LTE 2600/2300/2500/3500/700 –

Antwort

0

Für Netzwerktyp Sie diese Methode verwenden können (von here):

public static String getNetworkClass(Context context) { 
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
    NetworkInfo info = cm.getActiveNetworkInfo(); 
    if(info==null || !info.isConnected()) 
     return "-"; //not connected 
    if(info.getType() == ConnectivityManager.TYPE_WIFI) 
     return "WIFI"; 
    if(info.getType() == ConnectivityManager.TYPE_MOBILE){ 
     int networkType = info.getSubtype(); 
     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: //api<8 : replace by 11 
       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: //api<9 : replace by 14 
      case TelephonyManager.NETWORK_TYPE_EHRPD: //api<11 : replace by 12 
      case TelephonyManager.NETWORK_TYPE_HSPAP: //api<13 : replace by 15 
       return "3G"; 
      case TelephonyManager.NETWORK_TYPE_LTE: //api<11 : replace by 13 
       return "4G"; 
      default: 
       return "?"; 
     } 
    } 
    return "?"; 
} 

Aber um Frequenz Sie direkt mit GSM-Modul des Telefons über AT für Sierra Module oder AT+CBAND? für other Befehle wie AT!BAND? funktionieren sollte. Es ist auch möglich, aber mit harten Weg wie this. Oder kann etwas wie that aber es kaum jemals sein.