亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

Android獲取移動網(wǎng)絡(luò)信號強度的方法

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

獲取移動網(wǎng)絡(luò)的信號,一定要判斷是否插了 SIM 卡,沒插卡肯定是沒法獲取的

/** * 判斷是否包含SIM卡 * * @return 狀態(tài) */ 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 卡,就可以通過下邊方法來獲取移動網(wǎng)絡(luò)的信號強度(單位 dBM),使用的是 TelephonyManager 來監(jiān)聽

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);} }

也可以添加網(wǎng)絡(luò)類型的判斷,來獲取是何種網(wǎng)絡(luò)的信號強度

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

用到的獲取網(wǎng)絡(luò)類型的方法:

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;//沒有網(wǎng)絡(luò) } return mNetWorkType;}/** * 判斷網(wǎng)絡(luò)類型 */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;}

最后添加必要權(quán)限即可

<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獲取移動網(wǎng)絡(luò)信號強度的方法的詳細內(nèi)容,更多關(guān)于Android獲取網(wǎng)絡(luò)信號強度的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Android
相關(guān)文章:
主站蜘蛛池模板: www.av日韩| jiz欧美高清 | 91影视做在线观看免费 | 日韩精品一区二区在线观看 | 久草最新网址 | 欧美一级免费片 | 国产欧美一区二区三区在线看 | 久久精品一级 | 日韩精品福利视频一区二区三区 | 欧美日韩精品一区二区三区 | 国产成人精品免费午夜 | 精品在线一区 | 一级做a爰片久久毛片16 | 午夜一级做a爰片久久毛片 午夜伊人网 | 欧美精品videos | 91精品国产91热久久久久福利 | 日本红怡院在线 | 国产成人精品一区二区秒拍 | 色天使色婷婷在线影院亚洲 | 亚洲国产成人va在线观看网址 | www日本高清 | 国产视频a| 亚洲视频在线观看免费 | 色拍拍噜噜噜aⅴ在线观看 色青青草原桃花久久综合 色婷婷91 | 自拍成人| 久久视频免费观看 | 国产成人免费在线 | 欧美一级毛片片免费孕妇 | 四虎免费大片aⅴ入口 | 美女国产在线观看免费观看 | 久久午夜视频 | 免费女人18毛片a级毛片视频 | 日韩中文字幕精品久久 | 亚洲国产欧美日韩 | 9191在线亚洲精品 | 手机在线亚洲 | 男人的天堂欧美精品色偷偷 | 午夜精品影院 | 91视频站| 久久女同互慰一区二区三区 | 亚洲国产欧美一区二区欧美 |