如何在Android上检测网络类型从3g变为H +

时间:2012-03-14 13:54:59

标签: android networking

使用连接管理器和广播接收器我能够按照Eric's post here所解释的那样获得连接和断开连接事件

我想知道的是网络连接时的类型变化。 例如:3G到H +,反之亦然..我发现当这种变化发生时OnReceive(..)内部没有事件......

清晰的用户案例: 步骤1:启用3G连接,在广播(BCR)中接收和处理事件 step2:开始呼叫,从3G到h +的连接变化,但BCR没有事件。

预期输出:当从3G变为h +或边缘时,预计BCR中会发生事件......

1 个答案:

答案 0 :(得分:0)

在这里,在switch语句中,您可以执行某些操作。线程可以调用以下代码并密切关注网络。

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