I just started developing android, and I'm trying to figure out how to get signal strength from users. The following code gives me Dbm for a GSM network:
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();
However, I want to be able to receive signal power from any network. Perhaps it is GSM, LTE, CDMA or WCDMA. I looked at the documentation on telephony, but I was lost in how to do this. I tried to take the same code as above and just replace Gsm with Lte, but it ended up crashing my emulator.
Any help would be greatly appreciated.
Updated and added listener from the answer below. However, now, as soon as I run the application, it will work. This is a log file.
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 11:25:21.170: E/AndroidRuntime(921): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
05-26 11:25:21.170: E/AndroidRuntime(921): at android.os.Handler.dispatchMessage(Handler.java:102)
05-26 11:25:21.170: E/AndroidRuntime(921): at android.os.Looper.loop(Looper.java:136)
05-26 11:25:21.170: E/AndroidRuntime(921): at android.app.ActivityThread.main(ActivityThread.java:5017)
05-26 11:25:21.170: E/AndroidRuntime(921): at java.lang.reflect.Method.invokeNative(Native Method)
05-26 11:25:21.170: E/AndroidRuntime(921): at java.lang.reflect.Method.invoke(Method.java:515)
05-26 11:25:21.170: E/AndroidRuntime(921): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-26 11:25:21.170: E/AndroidRuntime(921): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-26 11:25:21.170: E/AndroidRuntime(921): at dalvik.system.NativeStart.main(Native Method)
05-26 11:25:21.170: E/AndroidRuntime(921): Caused by: java.lang.NullPointerException
05-26 11:25:21.170: E/AndroidRuntime(921): at com.example.androidcellinfo.CellInfo.<init>(CellInfo.java:74)
05-26 11:25:21.170: E/AndroidRuntime(921): at com.example.androidcellinfo.MainActivity.onCreate(MainActivity.java:28)
05-26 11:25:21.170: E/AndroidRuntime(921): at android.app.Activity.performCreate(Activity.java:5231)
05-26 11:25:21.170: E/AndroidRuntime(921): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-26 11:25:21.170: E/AndroidRuntime(921): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
05-26 11:25:21.170: E/AndroidRuntime(921): ... 11 more
05-26 11:25:25.090: I/Process(921): Sending signal. PID: 921 SIG: 9
Here is the code for line 74 (CellInfo)

Here is the code for line 28 (MainActivity)
