2012-03-14 69 views
3

與connectivitymanager和廣播接收器,我能夠得到連接和斷開事件解釋Eric's post here如何於3G檢測網絡類型轉換成H + Android上

我想知道的是,在類型,而網絡的變化正在連接。 例如:3G到H +,反之亦然。我看到裏面有的onReceive(..)時,這種變化沒有發生的事件......

用戶一個清楚的示例:在接收到3G連接啓用,事件: 第一步廣播(BCR)和處理 步驟2:開始呼叫,將連接從3G更改爲h +,但在BCR中沒有事件。

預期輸出:預計BCR的事件時有從3G變爲H +或邊緣...

回答

0

在這裏,switch語句,你可以做某些TAKS。線程可以調用以下代碼並關注網絡。

Get Network type

TelephonyManager teleMan = 
      (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
int networkType = teleMan.getNetworkType(); 

switch (networkType) 
{ 
case 7: 
    textV1.setText("1xRTT"); 
    break;  
case 4: 
    textV1.setText("CDMA"); 
    break;  
case 2: 
    textV1.setText("EDGE"); 
    break; 
case 14: 
    textV1.setText("eHRPD"); 
    break;  
case 5: 
    textV1.setText("EVDO rev. 0"); 
    break; 
case 6: 
    textV1.setText("EVDO rev. A"); 
    break; 
case 12: 
    textV1.setText("EVDO rev. B"); 
    break; 
case 1: 
    textV1.setText("GPRS"); 
    break;  
case 8: 
    textV1.setText("HSDPA"); 
    break;  
case 10: 
    textV1.setText("HSPA"); 
    break;   
case 15: 
    textV1.setText("HSPA+"); 
    break;   
case 9: 
    textV1.setText("HSUPA"); 
    break;   
case 11: 
    textV1.setText("iDen"); 
    break; 
case 13: 
    textV1.setText("LTE"); 
    break; 
case 3: 
    textV1.setText("UMTS"); 
    break;   
case 0: 
    textV1.setText("Unknown"); 
    break; 
} 

更新

http://developer.android.com/reference/android/content/BroadcastReceiver.html

Intent action for network events in android sdk

+0

我知道這個事件的處理方法。但是如何/在哪裏註冊這些事件。雖然這與Telephonymanager一起使用,但沒有提供更多關於連接或斷開連接事件的詳細信息,如上述erics post中所述。 – user12295 2012-03-14 14:01:20

+0

您可以編寫自己的定製類來擴展TelephonyManager,然後執行某些函數,該函數會持續檢查以前的連接狀態是否仍然是vaild,如果沒有則通知。 – Mayank 2012-03-14 14:06:44

+0

不斷的投票也沒有什麼大的幫助,因爲有時候切換是非常短暫的。我正在尋找更通用的系統事件。 – user12295 2012-03-14 14:12:15