优化2
This commit is contained in:
parent
62cb78167d
commit
ea7c977f62
|
|
@ -524,13 +524,80 @@
|
||||||
var infoStr = window.android.getAboutInfo();
|
var infoStr = window.android.getAboutInfo();
|
||||||
try {
|
try {
|
||||||
var info = JSON.parse(infoStr);
|
var info = JSON.parse(infoStr);
|
||||||
var html = '<strong>应用名称:</strong> ' + info.appName + '<br>' +
|
|
||||||
'<strong>版本号:</strong> <span style="color: #3b82f6;">' + info.versionName + '</span><br>' +
|
var friendlyNames = {
|
||||||
'<strong>设备型号:</strong> ' + info.model + '<br>' +
|
appName: '应用名称',
|
||||||
'<strong>系统版本:</strong> Android ' + info.osVersion + '<br>' +
|
versionName: '版本号',
|
||||||
'<strong>CPU 架构:</strong> ' + info.cpuAbi + '<br>' +
|
model: '设备型号',
|
||||||
'<strong>运行模式:</strong> ' + (info.is64Bit ? "64位" : "32位兼容模式");
|
osVersion: '系统版本',
|
||||||
document.getElementById('aboutBody').innerHTML = html;
|
cpuAbi: 'CPU 架构',
|
||||||
|
is64Bit: '运行模式',
|
||||||
|
screen: '屏幕与显示',
|
||||||
|
width: '宽度像素',
|
||||||
|
height: '高度像素',
|
||||||
|
density: '屏幕密度',
|
||||||
|
densityDpi: '屏幕DPI',
|
||||||
|
physicalSize: '物理尺寸 (英寸)',
|
||||||
|
hardware: '硬件与厂商',
|
||||||
|
manufacturer: '制造商',
|
||||||
|
brand: '品牌',
|
||||||
|
fingerprint: '系统指纹',
|
||||||
|
system: '系统环境',
|
||||||
|
sdkVersion: 'SDK 版本',
|
||||||
|
language: '系统语言',
|
||||||
|
country: '国家代码',
|
||||||
|
securityPatch: '安全补丁',
|
||||||
|
memory: '内存信息',
|
||||||
|
totalRam: '总内存 (RAM)',
|
||||||
|
availRam: '可用内存',
|
||||||
|
storage: '存储信息',
|
||||||
|
totalInternal: '总内部存储',
|
||||||
|
availInternal: '可用内部存储',
|
||||||
|
network: '网络状态',
|
||||||
|
type: '网络类型',
|
||||||
|
ipAddress: 'IP 地址',
|
||||||
|
battery: '电池状态',
|
||||||
|
level: '电量百分比',
|
||||||
|
status: '充电状态',
|
||||||
|
plugged: '供电类型'
|
||||||
|
};
|
||||||
|
|
||||||
|
function formatBytes(bytes) {
|
||||||
|
if (!bytes || bytes <= 0) return '0 B';
|
||||||
|
var k = 1024;
|
||||||
|
var sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
|
||||||
|
var i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||||
|
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildHtml(data, prefix) {
|
||||||
|
var keys = Object.keys(data);
|
||||||
|
var res = '';
|
||||||
|
for (var i = 0; i < keys.length; i++) {
|
||||||
|
var key = keys[i];
|
||||||
|
var val = data[key];
|
||||||
|
var label = friendlyNames[key] || key;
|
||||||
|
var indent = prefix ? 'margin-left: 15px;' : '';
|
||||||
|
|
||||||
|
if (val !== null && typeof val === 'object') {
|
||||||
|
res += '<div style="' + indent + 'margin-top: 8px; margin-bottom: 4px; border-bottom: 1px dashed #eee; padding-bottom: 2px;"><strong>' + label + '</strong></div>';
|
||||||
|
res += buildHtml(val, true);
|
||||||
|
} else {
|
||||||
|
var displayVal = val;
|
||||||
|
if (key === 'is64Bit') {
|
||||||
|
displayVal = val ? '64位' : '32位兼容模式';
|
||||||
|
} else if (key === 'totalRam' || key === 'availRam' || key === 'totalInternal' || key === 'availInternal') {
|
||||||
|
displayVal = formatBytes(val);
|
||||||
|
} else if (key === 'level') {
|
||||||
|
displayVal = val >= 0 ? val + '%' : '未知';
|
||||||
|
}
|
||||||
|
res += '<div style="' + indent + 'line-height: 1.6;"><strong>' + label + ':</strong> ' + displayVal + '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('aboutBody').innerHTML = buildHtml(info, false);
|
||||||
document.getElementById('aboutModal').style.display = 'flex';
|
document.getElementById('aboutModal').style.display = 'flex';
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
document.getElementById('aboutBody').innerText = "获取信息解析失败: " + infoStr;
|
document.getElementById('aboutBody').innerText = "获取信息解析失败: " + infoStr;
|
||||||
|
|
|
||||||
|
|
@ -378,22 +378,9 @@ class AndroidInterface(private val activity: MainActivity) {
|
||||||
fun getAboutInfo(): String {
|
fun getAboutInfo(): String {
|
||||||
return try {
|
return try {
|
||||||
val packageInfo = activity.packageManager.getPackageInfo(activity.packageName, 0)
|
val packageInfo = activity.packageManager.getPackageInfo(activity.packageName, 0)
|
||||||
val json = JSONObject()
|
val json = com.stand.standapp.utils.DeviceInfoUtils.getDeviceInfoJson(activity)
|
||||||
json.put("appName", activity.getString(R.string.app_name))
|
json.put("appName", activity.getString(R.string.app_name))
|
||||||
json.put("versionName", packageInfo.versionName)
|
json.put("versionName", packageInfo.versionName ?: "1.0.0")
|
||||||
json.put("model", android.os.Build.MODEL)
|
|
||||||
json.put("osVersion", android.os.Build.VERSION.RELEASE)
|
|
||||||
|
|
||||||
val abis = android.os.Build.SUPPORTED_ABIS
|
|
||||||
json.put("cpuAbi", abis.joinToString(","))
|
|
||||||
|
|
||||||
val is64Bit = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
|
||||||
android.os.Process.is64Bit()
|
|
||||||
} else {
|
|
||||||
abis.any { it.contains("64") }
|
|
||||||
}
|
|
||||||
json.put("is64Bit", is64Bit)
|
|
||||||
|
|
||||||
json.toString()
|
json.toString()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Timber.tag("AndroidInterface").e(e, "getAboutInfo failed")
|
Timber.tag("AndroidInterface").e(e, "getAboutInfo failed")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue