小编Roc*_*ors的帖子

如何获得android信号强度

我刚刚开始为Android开发,我正在试图弄清楚如何获得用户信号强度.以下代码为我提供了GSM网络的Dbm:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

// Get GSM Signal Strength (Dbm)
CellInfoGsm GSM = (CellInfoGsm)telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthGsm cellSignalStrengthGsm = GSM.getCellSignalStrength();
signalStrength = cellSignalStrengthGsm.getDbm();
Run Code Online (Sandbox Code Playgroud)

但是我希望能够从任何类型的网络中获得信号强度.可能是GSM,LTE,CDMA或WCDMA.我看过电话文档,但我对如何解决这个问题感到迷茫.我试图采用与上面相同的代码,只是用Lte替换Gsm,但最终崩溃了我的模拟器.

任何帮助将不胜感激.

更新并添加了以下答案中的监听器.但是现在,只要我运行应用程序,它就会崩溃.这是日志文件.

05-26 11:25:21.140: D/AndroidRuntime(921): Shutting down VM
05-26 11:25:21.140: W/dalvikvm(921): threadid=1: thread exiting with uncaught exception (group=0xb3aecba8)
05-26 11:25:21.170: E/AndroidRuntime(921): FATAL EXCEPTION: main
05-26 11:25:21.170: E/AndroidRuntime(921): Process: com.example.androidcellinfo, PID: 921
05-26 11:25:21.170: E/AndroidRuntime(921): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androidcellinfo/com.example.androidcellinfo.MainActivity}: java.lang.NullPointerException
05-26 11:25:21.170: E/AndroidRuntime(921):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
05-26 11:25:21.170: E/AndroidRuntime(921):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
05-26 11:25:21.170: E/AndroidRuntime(921):  at android.app.ActivityThread.access$800(ActivityThread.java:135)
05-26 …
Run Code Online (Sandbox Code Playgroud)

java android telephonymanager

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

java ×1

telephonymanager ×1