2012-03-14 77 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