2010-07-02 53 views
4

我目前正在寫一些代碼在android 2.1的應該測量gsm信號的信號強度。 我需要的是某種形式的名單有某種匹配相應的信號strengthes網絡ID ... 我走到這一步:如何獲得可用的GSM網絡列表?

public class main extends Activity { 
    TelephonyManager telManager; 
    GSMListener gsmListener; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     gsmListener = new GSMListener(); 

     telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
     telManager.listen(gsmListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); 

    } 

    private class GSMListener extends PhoneStateListener { 
     /* Get the Signal strength from the provider, each time there is an update */ 
     @Override 
     public void onSignalStrengthsChanged(SignalStrength signalStrength) { 
      super.onSignalStrengthsChanged(signalStrength); 

      Toast.makeText(main.this, "GSM Cinr: " + signalStrength.getGsmSignalStrength(), Toast.LENGTH_SHORT).show(); 
     } 
    }; 
} 

,但在這一點上,我不知道是否有網絡ID,如無線網絡?這是如何處理與GSM?我需要確定我獲得信號強度的GSM網絡。

編輯:

「network-id」,意思是「cell-id」。我需要的是範圍內的*all available* gsm網絡列表以及它們的接收質量。運營商ID對我來說並不是很感興趣,因爲我需要識別小區和網絡,我從中獲得信號強度。

回答

4

每個運營商都有一個唯一的ID,即一個名爲PLMN(公共陸地移動網絡)的5位數字號碼。

該號碼由一個3位MCC(移動國家代碼)和一個2位MNC(移動網絡代碼)組成。

wikipedia list是一個比較完整的列表。