修复信号强度的计算

main
Matthew 12 months ago
parent db5b80926d
commit d16bf8595a

@ -8,9 +8,13 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.telephony.SignalStrength;
import android.telephony.TelephonyManager;
import android.telephony.ims.ImsMmTelManager;
import android.text.Html;
import android.text.TextUtils;
import android.text.format.Formatter;
@ -60,6 +64,9 @@ public class DeviceActivity extends AppCompatActivity {
private static final String KEY_RO_SERIALNO = "ro.serialno";
private static final String KEY_RO_MODEMS_MAX_COUNT = "telephony.active_modems.max_count";
private static final String KEY_RO_SIGNAL_STRNGTH_PREFIX = "vendor.ril.nw.signalstrength.lte.";
private static final String KEY_GSM_VENDOR_NAME = "gsm.operator.alpha";
// private static final String KEY_RO_MODEMS_MAX_COUNT = "telephony.active_modems.max_count";
// // [ro.bootimage.build.date.utc]: [1716880263]
@ -123,13 +130,41 @@ public class DeviceActivity extends AppCompatActivity {
AdbKeyPair.generate(priKeyFile, pubKeyFile);
}
mAdbKeyPair = AdbKeyPair.read(priKeyFile, pubKeyFile);
final Context context = getApplicationContext();
binding.takePhoto1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
takePhoto(1, 255, true);
}
});
binding.takeVideo1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
takeVideo(1, 255, false);
}
});
mProgressDialog = ProgressDialog.show(this, "", "连接中", true, true);
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
DeviceActivity.this.finish();
}
});
loadDeviceInfo(context);
}
protected void loadDeviceInfo(final Context context) {
final File fileTmp = new File(getFilesDir(), "tmp");
if (!fileTmp.exists()) {
fileTmp.mkdirs();
}
mAdbKeyPair = AdbKeyPair.read(priKeyFile, pubKeyFile);
final Context context = getApplicationContext();
(new Thread(new Runnable() {
@Override
@ -145,6 +180,7 @@ public class DeviceActivity extends AppCompatActivity {
@Override
public void run() {
mProgressDialog.dismiss();
showAppInfo();
}
});
}
@ -300,30 +336,9 @@ public class DeviceActivity extends AppCompatActivity {
}
}
})).start();
binding.takePhoto1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
takePhoto(1, 255, true);
}
});
binding.takeVideo1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
takeVideo(1, 255, false);
}
});
mProgressDialog = ProgressDialog.show(this, "", "连接中", true, true);
mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
DeviceActivity.this.finish();
}
});
})).start();
}
protected boolean pullFile(Dadb adb, String remoteFilePath, File localFilePath) {
@ -547,6 +562,24 @@ public class DeviceActivity extends AppCompatActivity {
}
}
public static int calculateSignalLevel(int rsrp, int numLevels) {
int signalLevel = 0;
if (rsrp >= -97) {
signalLevel = 4;
} else if (rsrp >= -107) {
signalLevel = 3;
} else if (rsrp >= -117) {
signalLevel = 2;
} else if (rsrp >= -125) {
signalLevel = 1;
} else if (rsrp >= -140) {
signalLevel = 0;
}
return signalLevel;
}
private void showAppInfo() {
ActionBar actionBar = getSupportActionBar();
@ -565,9 +598,11 @@ public class DeviceActivity extends AppCompatActivity {
StringBuilder stringBuilder = new StringBuilder();
ConnectivityManager mConnectivityManager;
if (mProps.containsKey(KEY_RO_SERIALNO)) {
String val = (String)mProps.get(KEY_RO_SERIALNO);
appendKeyValue(stringBuilder, "序列号", val);
appendKeyValue(stringBuilder, "序列号", val, true);
}
int numberOfSimcard = 0;
@ -587,13 +622,18 @@ public class DeviceActivity extends AppCompatActivity {
if (!TextUtils.isEmpty(signalLevel)) {
signalLevel += "/";
}
int ss = WifiManager.calculateSignalLevel(signalStrength, RSSI_LEVELS);
TelephonyManager telephonyManager;
SignalStrength signalStrength1;
int ss = calculateSignalLevel(signalStrength, RSSI_LEVELS);
signalLevel += Integer.toString(ss);
}
}
}
appendKeyValue(stringBuilder, "CMDID", mAppConfig.cmdid);
appendKeyValue(stringBuilder, "CMDID", mAppConfig.cmdid, true);
appendKeyValue(stringBuilder, "主站", mAppConfig.server + ":" + Integer.toString(mAppConfig.port));
@ -604,6 +644,12 @@ public class DeviceActivity extends AppCompatActivity {
appendKeyValue(stringBuilder, "APP版本", val);
}
String vendorName = "";
if (mProps.containsKey(KEY_GSM_VENDOR_NAME)) {
vendorName = mProps.get(KEY_GSM_VENDOR_NAME);
}
appendKeyValue(stringBuilder, "移动运营商", vendorName);
appendKeyValue(stringBuilder, "移动信号", signalLevel);
if (mBatteryVoltage != -1) {
@ -617,7 +663,15 @@ public class DeviceActivity extends AppCompatActivity {
}
private void appendKeyValue(StringBuilder stringBuilder, String key, String val) {
appendKeyValue(stringBuilder, key, val, false);
}
private void appendKeyValue(StringBuilder stringBuilder, String key, String val, boolean highlignt) {
if (highlignt) {
stringBuilder.append(key + "<font color=\"red\"><b>" + val + "</b></font>");
} else {
stringBuilder.append(key + "" + val);
}
stringBuilder.append("<br>");
}

Loading…
Cancel
Save