如何在 Android 上检测从 3g 到 H+ 的网络类型更改

2024-04-27

通过连接管理器和广播接收器,我能够获取连接和断开连接事件,如下所述埃里克的帖子在这里 https://stackoverflow.com/questions/1783117/network-listener-android

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

为了清晰起见,用户案例: 步骤1:启用3G连接,以广播(BCR)接收事件并进行处理 步骤2:开始呼叫,连接从3G更改为h+,但BCR中没有任何事件。

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


在这里,您可以在 switch 语句上执行某些操作。线程可以调用以下代码并监视网络。

获取网络类型 https://stackoverflow.com/questions/2919414/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; 
} 

update

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

android sdk 中网络事件的意图操作 https://stackoverflow.com/questions/2294971/intent-action-for-network-events-in-android-sdk

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 上检测从 3g 到 H+ 的网络类型更改 的相关文章

随机推荐