我正在尝试获取可用蜂窝网络提供商的列表.很遗憾,我找不到任何可能帮助我的服务或课程.有没有人知道如何管理这个?必须可以,因为当您转到Android设备上的设置时,您可以看到列表.
有人可以说,当我使用gsm位置时,我只能使用我的移动运营商的塔,或者我可以使用不同运营商的塔获得它吗?
如果我的用户驾驶他的车,但没有任何他的移动运营商塔,设备如何获得其位置?只有GSM.
我刚刚开始为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) 是否有可能在Android上以编程方式识别当前连接的移动网络和网络运营商?如果可能,请提供代码示例
谢谢.