獲取手機訊號強度,包括WiFi,2G,4G

2021-09-30 01:46:17 字數 1952 閱讀 3556

因為業務需要,獲取到手機主機板的訊號強度,包括wifi,4g,2g。來驗證當前主機板模組是否是因為訊號不好而導致問題,我去網上查詢了幾遍,將一些文章結合起來。最後獲取到相關資料。以下是相關的操作步驟

1.加許可權

2.例項化telephonymanager,建立起phonestatlistener監聽(主要是帶sim卡的狀態監聽),再註冊乙個networkbroadcastreceiver監聽。

//獲取telephonymanager

mtelephonymanager = (telephonymanager) getsystemservice(context.telephony_service);

//開始監聽

mlistener = new phonestatlistener();

mnetworkbroadcastreciver = new networkbroadcastreciver();

intentfilter intentfilter = new intentfilter();

intentfilter.addaction(connectivitymanager.connectivity_action);

intentfilter.addaction(wifimanager.network_state_changed_action);

intentfilter.addaction(wifimanager.wifi_state_changed_action);

intentfilter.addaction(wifimanager.rssi_changed_action);

registerreceiver(mnetworkbroadcastreciver, intentfilter);

mtelephonymanager.listen(mlistener, phonestatlistener.listen_signal_strengths);
/**

* 觀察手機帶sim卡時的訊號強度

*/private class phonestatlistener extends phonestatelistener

}

//接收網路狀態改變的廣播

class networkbroadcastreciver extends broadcastreceiver

}

/**

* 獲取網路的資訊

*/private void getnetworkinfo()

method method=signal.getclass().getmethod("getdbm");

mgsmsignalstrength= (int) method.invoke(signal);

if(mgsmsignalstrength>-90)else

} catch (nosuchmethodexception e) catch (illegalacces***ception e) catch (invocationtargetexception e)

}else

mgsmsignalstrength = signal.getgsmsignalstrength();

}mtextview.settext("當前為" + networkstatus + ",訊號強度=" + mgsmsignalstrength);

log.e("tiwolf", "當前為" + networkstatus + ",訊號強度=" + mgsmsignalstrength );

break;

}} else

}

最後結束取消監聽,取消註冊

mtelephonymanager.listen(mlistener, phonestatlistener.listen_none);
unregisterreceiver(mnetworkbroadcastreciver);

Android手機訊號強度詳解

經常有機油反應android手機訊號差的問題,其實不要被你手機訊號還有多少格欺騙,那都是手機廠商自己定義的。咱要玩專業點的,直接看訊號強度dbm。android系統查訊號強度在設定 關於手機 網路裡。室內和室外的訊號強度是有差距的。一般室外訊號比室內好。現在來看這個所謂的dbm,數值範圍在 xx 0...

用網速作為手機訊號強度

用網速作為手機訊號強度 紅朝儒生 2014 5 18 關鍵字 網速 訊號強度 簡介 用網速表示訊號強度的標準。現在,打 是手機的次要功能,上網才是首選功能,能上網也同樣能打網路 當前的手機訊號強度,其實只是跟基站之間的訊號強度。這在以前,也是沒有問題的,訊號越強打 越好。但是現在呢,事情變化了。所以...

RSSI 訊號強度

rssi是負值並不代表其訊號值就是負值。這個值單位是dbm,是根據公式 n dbm 10log w 1mw 得來的,由公司可知,當功率值w小於1mw時,n就是負值。所以rssi是負值說明其功率小於1mw。1.dbm dbm 用於表達功率的絕對值,計算公式為 10lg p功率值 lmw 例 如果發射功...