成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術文章
文章詳情頁

Android獲取移動網絡信號強度的方法

瀏覽:4日期:2022-09-19 14:43:14
判斷有沒有 SIM 卡

獲取移動網絡的信號,一定要判斷是否插了 SIM 卡,沒插卡肯定是沒法獲取的

/** * 判斷是否包含SIM卡 * * @return 狀態 */ public static boolean hasSimCard(Context context) {TelephonyManager telMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);int simState = telMgr.getSimState();boolean result = true;switch (simState) { case TelephonyManager.SIM_STATE_ABSENT: case TelephonyManager.SIM_STATE_UNKNOWN:result = false; // 沒有SIM卡break;}return result; }獲取信號強度

如果插了 SIM 卡,就可以通過下邊方法來獲取移動網絡的信號強度(單位 dBM),使用的是 TelephonyManager 來監聽

private void getMobileNetworkSignal() {if (!PhoneUtils.hasSimCard(mcontext)) { logger.info('getMobileNetworkSignal: no sim card'); return;}TelephonyManager mTelephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE);if (mTelephonyManager != null) { mTelephonyManager.listen(new PhoneStateListener() {@Overridepublic void onSignalStrengthsChanged(SignalStrength signalStrength) { super.onSignalStrengthsChanged(signalStrength); int asu = signalStrength.getGsmSignalStrength(); int lastSignal = -113 + 2 * asu; if (lastSignal > 0) {mobileNetworkSignal = lastSignal + 'dBm'; } logger.info('Current mobileNetworkSignal:' + lastSignal + ' dBm');} }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);} }

也可以添加網絡類型的判斷,來獲取是何種網絡的信號強度

int netWorkType = getNetWorkType(mContext);switch (netWorkType) { case NETWORKTYPE_WIFI:mTextView.setText('當前網絡為wifi,信號強度為:' + gsmSignalStrength);break; case NETWORKTYPE_2G:mTextView.setText('當前網絡為2G移動網絡,信號強度為:' + gsmSignalStrength);break; case NETWORKTYPE_4G:mTextView.setText('當前網絡為4G移動網絡,信號強度為:' + gsmSignalStrength);break; case NETWORKTYPE_NONE:mTextView.setText('當前沒有網絡,信號強度為:' + gsmSignalStrength);break; case -1:mTextView.setText('當前網絡錯誤,信號強度為:' + gsmSignalStrength);break;}

用到的獲取網絡類型的方法:

public static int getNetWorkType(Context context) { int mNetWorkType = -1; ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) {String type = networkInfo.getTypeName();if (type.equalsIgnoreCase('WIFI')) { mNetWorkType = NETWORKTYPE_WIFI;} else if (type.equalsIgnoreCase('MOBILE')) { return isFastMobileNetwork(context) ? NETWORKTYPE_4G : NETWORKTYPE_2G;} } else {mNetWorkType = NETWORKTYPE_NONE;//沒有網絡 } return mNetWorkType;}/** * 判斷網絡類型 */private static boolean isFastMobileNetwork(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); if (telephonyManager.getNetworkType() == TelephonyManager.NETWORK_TYPE_LTE) {return true; } return false;}

最后添加必要權限即可

<uses-permission android:name='android.permission.INTERNET'/><uses-permission android:name='android.permission.CHANGE_NETWORK_STATE'/><uses-permission android:name='android.permission.ACCESS_WIFI_STATE'/><uses-permission android:name='android.permission.ACCESS_NETWORK_STATE'/>

以上就是Android獲取移動網絡信號強度的方法的詳細內容,更多關于Android獲取網絡信號強度的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
主站蜘蛛池模板: 全部免费的毛片视频观看 | 妖精www成人动漫在线观看 | 手机看片日韩国产 | 美女视频黄免费 | 日本女人www | 国产偷国产偷亚洲高清在线 | 一本色道久久综合狠狠躁 | 特黄aa级毛片免费视频播放 | 亚洲国产cao | 欧美精品亚洲精品日韩一区 | 日韩在线视精品在亚洲 | 不卡无毒免费毛片视频观看 | 农村寡妇一级毛片免费看视频 | 日本一区二区三区在线 视频观看免费 | 色播亚洲精品网站 亚洲第一 | 美女视频黄色在线观看 | 国产偷自拍 | 欧美一级特黄真人毛片 | 欧美亚洲日本韩国一级毛片 | 在线成人精品国产区免费 | 亚洲第一页在线视频 | 日韩视频在线观看一区 | 国产嫩草影院在线观看 | 性色xxx| 美女被cao免费看在线看网站 | 欧美韩国日本一区 | 久久视频在线播放视频99re6 | 一级做a爱过程免费观看 | 成人小视频在线观看免费 | 欧美亚洲中日韩中文字幕在线 | 精品色综合| 永久网站色视频在线观看免费 | 欧美成人看片一区二区三区 | 免费视频观看在线www日本 | 怡红院视频网 | 国产视频在线免费观看 | 成人国产在线24小时播放视频 | 一区二区三区四区视频 | 黄色网址免费在线 | 亚洲爽妇网 | 日本阿v视频在线观看高清 日本波多野结衣视频 |