成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來到九壹網(wǎng)。
搜索
您的當前位置:首頁Android判斷用戶的網(wǎng)絡(luò)類型(2/3/4G、wifi)

Android判斷用戶的網(wǎng)絡(luò)類型(2/3/4G、wifi)

來源:九壹網(wǎng)

很多時候需要先判斷當前用戶的網(wǎng)絡(luò),才會繼續(xù)之后的一些處理邏輯。但網(wǎng)絡(luò)類型獲取這一塊,我用我自己的的手機調(diào)試時遇到一些問題,這里記錄一下。

一加手機一代,移動4G 網(wǎng)絡(luò),得到的subtype類型值為17,我查過Android 5.1的源碼,它最大的值也就為16。(

?

我拿魅族的移動4G測試的結(jié)果如下:

?

小米4,電信4G的測試結(jié)果如下:

魅族MX4,聯(lián)通3G

?

還測試了其它華為移動3G/4G的情況,就我自己的手機一加返回的值有點奇怪,之后我查了一下它的參數(shù):

當然,其它廠商:華為、小米、魅族與上面顯示的網(wǎng)絡(luò)類型基本上是一致的。都是3G:TD-SCDMA、WCDMA等

?

而目前測試的情況就是僅一加返回的值為17,這會導(dǎo)致正常的判斷出現(xiàn)問題,無法識別到底使用的是何種網(wǎng)絡(luò)。而我通過logcat的日志,卻很清晰的發(fā)現(xiàn)系統(tǒng)自己是能識別的

?

?

最后我根據(jù)網(wǎng)絡(luò)上提供的資料,加了一項比較特殊的判斷,演變成如下的代碼:

public?static String GetNetworkType()
{
??? String strNetworkType = "";
???
??? NetworkInfo networkInfo = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo();
??? if (networkInfo != null && networkInfo.isConnected())
??? {
??????? if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI)
??????? {
??????????? strNetworkType = "WIFI";
??????? }
??????? else?if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE)
??????? {
??????????? String _strSubTypeName = networkInfo.getSubtypeName();
???????????
??????????? Log.e("cocos2d-x", "Network getSubtypeName : " + _strSubTypeName);
???????????
??????????? // TD-SCDMA?? networkType is 17
??????????? int networkType = networkInfo.getSubtype();
??????????? switch (networkType) {
??????????????? case TelephonyManager.NETWORK_TYPE_GPRS:
??????????????? case TelephonyManager.NETWORK_TYPE_EDGE:
??????????????? case TelephonyManager.NETWORK_TYPE_CDMA:
??????????????? case TelephonyManager.NETWORK_TYPE_1xRTT:
??????????????? case TelephonyManager.NETWORK_TYPE_IDEN: //api<8 : replace by 11
??????????????????? strNetworkType = "2G";
??????????????????? break;
??????????????? case TelephonyManager.NETWORK_TYPE_UMTS:
??????????????? case TelephonyManager.NETWORK_TYPE_EVDO_0:
??????????????? case TelephonyManager.NETWORK_TYPE_EVDO_A:
??????????????? case TelephonyManager.NETWORK_TYPE_HSDPA:
??????????????? case TelephonyManager.NETWORK_TYPE_HSUPA:
??????????????? case TelephonyManager.NETWORK_TYPE_HSPA:
??????????????? case TelephonyManager.NETWORK_TYPE_EVDO_B: //api<9 : replace by 14
??????????????? case TelephonyManager.NETWORK_TYPE_EHRPD:? //api<11 : replace by 12
??????????????? case TelephonyManager.NETWORK_TYPE_HSPAP:? //api<13 : replace by 15
??????????????????? strNetworkType = "3G";
??????????????????? break;
??????????????? case TelephonyManager.NETWORK_TYPE_LTE:??? //api<11 : replace by 13
??????????????????? strNetworkType = "4G";
??????????????????? break;
??????????????? default:
??????????????????? // http://baike.baidu.com/item/TD-SCDMA 中國移動 聯(lián)通 電信 三種3G制式
??????????????????? if (_strSubTypeName.equalsIgnoreCase("TD-SCDMA") || _strSubTypeName.equalsIgnoreCase("WCDMA") || _strSubTypeName.equalsIgnoreCase("CDMA2000"))
??????????????????? {
??????????????????????? strNetworkType = "3G";
??????????????????? }
??????????????????? else
??????????????????? {
??????????????????????? strNetworkType = _strSubTypeName;
??????????????????? }
???????????????????
??????????????????? break;
???????????? }
????????????
??????????? Log.e("cocos2d-x", "Network getSubtype : " + Integer.valueOf(networkType).toString());
??????? }
??? }
???
??? Log.e("cocos2d-x", "Network Type : " + strNetworkType);
???
??? return strNetworkType;
}

?

希望對需要的人有所幫助吧。我在網(wǎng)上搜索到,之前其實有人提出過類似的疑問,但是沒有答案:

?

參考鏈接:

因篇幅問題不能全部顯示,請點此查看更多更全內(nèi)容

Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號-2

違法及侵權(quán)請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)