获取到手机的网络信号强度,可以直接吐司(因为是动态的,有多个值),我要怎么在监听器内部取到的多个值中的一个,返回给后台端

1,问题描述:取到Toast显示的内容,返回给后台

 public void getCurrentNetDBM(Context context) {
    
            final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            PhoneStateListener mylistener = new PhoneStateListener() {
                @Override
                public void onSignalStrengthsChanged(SignalStrength signalStrength) {
                    super.onSignalStrengthsChanged(signalStrength);
                    String info = null;
                    String signalInfo = signalStrength.toString();
                    String[] params = signalInfo.split(" ");
                    String s = "";
                    int Itedbm = Integer.parseInt(params[9]);
    
                    int asu = signalStrength.getGsmSignalStrength();
                    int dbm = -113 + 2 * asu;
                    if (tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_LTE) {
    
                        Toast.makeText(mContext, "LTE:" + Itedbm + "dBm,Detail:" + signalInfo, Toast.LENGTH_LONG).show();
    
                    } else if (tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_HSDPA
                            || tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_HSPA
                            || tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_HSUPA
                            || tm.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS) {
 
                        Toast.makeText(mContext, "MCDMA:" + dbm + "dBm,Detail:" + signalInfo, Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(mContext, "GSM:" + dbm + "dBm,Detail:" + signalInfo, Toast.LENGTH_LONG).show();
                    }
    
                }
            };
            tm.listen(mylistener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
        }
阅读 3.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题