|
|
(4 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| <syntaxhighlight lang="c">
| | {{Migrating|https://smartpossdk.gitbook.io/cloudpossdk/faq/other-development/obtain-signal-strength}} |
| public TelephonyManager telephoneManager;
| |
| public PhoneStateListener phoneStateListener;
| |
| | |
| public void listenerSignal(Context context) {
| |
| telephoneManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
| |
| telephoneManager.listen(phoneStateListener,
| |
| PhoneStateListener.LISTEN_SERVICE_STATE
| |
| | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
| |
| | PhoneStateListener.LISTEN_CALL_STATE
| |
| | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
| |
| | PhoneStateListener.LISTEN_DATA_ACTIVITY);
| |
| phoneStateListener = new PhoneStateListener() {
| |
| @Override
| |
| public void onServiceStateChanged(ServiceState serviceState) {
| |
| Logger.debug("onServiceStateChanged++++");
| |
| super.onServiceStateChanged(serviceState);
| |
| int voiceRegState = serviceState.getVoiceRegState();
| |
| int dataRegState = serviceState.getDataRegState();
| |
| }
| |
| | |
| | |
| @Override
| |
| public void onSignalStrengthsChanged(SignalStrength signalStrength) {
| |
| Logger.debug("onSignalStrengthsChanged++++");
| |
| super.onSignalStrengthsChanged(signalStrength);
| |
| | |
| int level = signalStrength.getLevel();//Call requires API level 23
| |
| int asu = getMethod(signalStrength, "getAsuLevel");//Hide
| |
| int dbm = getMethod(signalStrength, "getDbm");//Hide
| |
| }
| |
| | |
| | |
| };
| |
| | |
| | |
| }
| |
| | |
| | |
| int getMethod(SignalStrength signalStrength, String name) {
| |
| Class<?> clazz = signalStrength.getClass();
| |
| Method method = null;
| |
| int i = 0;
| |
| try {
| |
| method = clazz.getMethod(name);//getDbm
| |
| Object result = method.invoke(signalStrength);
| |
| i = Integer.parseInt(String.valueOf(result));
| |
| } catch (Exception e) {
| |
| e.printStackTrace();
| |
| }
| |
| return i;
| |
| }
| |
| </syntaxhighlight>
| |