From d16bf8595ad6a862acd44f5d75e86cf817c3c9c3 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 3 Jul 2024 13:04:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BF=A1=E5=8F=B7=E5=BC=BA?= =?UTF-8?q?=E5=BA=A6=E7=9A=84=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpremote/DeviceActivity.java | 110 +++++++++++++----- 1 file changed, 82 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/xypower/mpremote/DeviceActivity.java b/app/src/main/java/com/xypower/mpremote/DeviceActivity.java index 4c08e84..548cdd1 100644 --- a/app/src/main/java/com/xypower/mpremote/DeviceActivity.java +++ b/app/src/main/java/com/xypower/mpremote/DeviceActivity.java @@ -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) { - stringBuilder.append(key + ":" + val + ""); + appendKeyValue(stringBuilder, key, val, false); + } + + private void appendKeyValue(StringBuilder stringBuilder, String key, String val, boolean highlignt) { + if (highlignt) { + stringBuilder.append(key + ":" + val + ""); + } else { + stringBuilder.append(key + ":" + val); + } stringBuilder.append("
"); }