version:6.5.4

fix:
update:增加一百分接口,增加清理界面
This commit is contained in:
2023-11-20 10:38:15 +08:00
parent a7af7cf2a8
commit 1bf394241c
31 changed files with 1161 additions and 835 deletions

View File

@@ -25,7 +25,6 @@
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
@@ -36,98 +35,69 @@
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.SHUTDOWN" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission
android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"
android:maxSdkVersion="22" />
<uses-permission
android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
android:maxSdkVersion="23" />
<!-- 静默安装权限 -->
android:maxSdkVersion="23" /> <!-- 静默安装权限 -->
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission
android:name="android.permission.INSTALL_PACKAGES"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- 应用卸载权限 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 应用卸载权限 -->
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission
android:name="android.permission.DELETE_PACKAGES"
tools:ignore="ProtectedPermissions" />
<!--自定义安装应用权限-->
tools:ignore="ProtectedPermissions" /> <!-- 自定义安装应用权限 -->
<uses-permission android:name="com.aoleyun.sn.permissions.INSTALL_APK" />
<permission android:name="com.aoleyun.sn.permissions.INSTALL_APK" />
<!--百度-->
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 用于访问wifi网络信息wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 这个权限用于获取wifi的获取权限wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 允许挂载和反挂载文件系统可移动存储 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 允许程序读取底层系统日志文件 -->
<uses-permission android:name="android.permission.READ_LOGS" />
<!-- 允许访问振动设备 -->
<uses-permission android:name="android.permission.VIBRATE" />
<!-- 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 允许程序读取或写入系统设置 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- android 9.0上使用前台服务,需要添加权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 读取缓存数据 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 获取模拟定位信息 -->
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<!-- 【必须】 移动推送 TPNS SDK 所需权限 -->
<!-- <uses-permission android:name="android.permission.INTERNET" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<!-- 【常用】 移动推送 TPNS SDK所需权限 -->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" />-->
<!-- <uses-permission android:name="android.permission.VIBRATE" />-->
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<!-- <uses-permission android:name="android.permission.GET_TASKS" />-->
<permission android:name="com.aoleyun.sn.permissions.INSTALL_APK" /> <!-- 百度 -->
<!-- 这个权限用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于访问wifi网络信息wifi信息会用于进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限wifi信息会用来进行网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 访问网络,网络定位需要上网 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 允许挂载和反挂载文件系统可移动存储 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 允许程序读取底层系统日志文件 -->
<uses-permission android:name="android.permission.READ_LOGS" /> <!-- 允许访问振动设备 -->
<uses-permission android:name="android.permission.VIBRATE" /> <!-- 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- 允许程序读取或写入系统设置 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- android 9.0上使用前台服务,需要添加权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 读取缓存数据 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 获取模拟定位信息 -->
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <!-- 【必须】 移动推送 TPNS SDK 所需权限 -->
<!-- <uses-permission android:name="android.permission.INTERNET" /> -->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" /> <!-- 【常用】 移动推送 TPNS SDK所需权限 -->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" /> -->
<!-- <uses-permission android:name="android.permission.VIBRATE" /> -->
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" /> -->
<!-- <uses-permission android:name="android.permission.GET_TASKS" /> -->
<!-- 高德地图 -->
<!-- 用于进行网络定位 -->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> -->
<!-- 用于访问GPS定位 -->
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> -->
<!-- 用于获取运营商信息,用于支持提供运营商信息相关的接口 -->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> -->
<!-- 用于访问wifi网络信息wifi信息会用于进行网络定位 -->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
<!-- 用于获取wifi的获取权限wifi信息会用来进行网络定位 -->
<!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />-->
<!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> -->
<!-- 用于访问网络,网络定位需要上网 -->
<!-- <uses-permission android:name="android.permission.INTERNET" />-->
<!-- <uses-permission android:name="android.permission.INTERNET" /> -->
<!-- 用于读取手机当前的状态 -->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" /> -->
<!-- 用于写入缓存数据到扩展存储卡 -->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> -->
<!-- 用于申请调用A-GPS模块 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!-- 如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限 -->
<!-- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限 -->
<!-- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> -->
<!-- 如果您的应用需要后台定位权限且有可能运行在Android Q设备上,并且设置了target>28必须增加这个权限声明 -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
@@ -142,7 +112,8 @@
android:theme="@style/AppTheme">
<activity
android:name=".activity.SplashActivity"
android:exported="true">
android:exported="true"
android:screenOrientation="userPortrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -157,21 +128,35 @@
android:launchMode="singleInstance"
android:screenOrientation="userLandscape"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.CleanupActivity"
android:exported="true"
android:icon="@drawable/com_system_clean"
android:label="一键加速"
android:launchMode="singleInstance"
android:theme="@style/activity_styles">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.checknet.CheckNetActivity"
android:theme="@style/activity_styles">
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.MAIN" /> -->
<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
<!-- </intent-filter> -->
</activity>
<activity
android:name=".activity.main.MainActivity"
@@ -304,21 +289,15 @@
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<!--百度地图-->
</provider> <!-- 百度地图 -->
<!-- 声明service组件 -->
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" />
<!-- 应用的其它配置 -->
android:process=":remote" /> <!-- 应用的其它配置 -->
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<!-- 消息接收监听器 (用户可自主扩展) -->
android:required="false" /> <!-- 消息接收监听器 (用户可自主扩展) -->
<receiver
android:name=".push.alipush.AliyunMessageReceiver"
android:exported="false">
@@ -331,33 +310,28 @@
<intent-filter>
<action android:name="com.alibaba.sdk.android.push.RECEIVE" />
</intent-filter>
</receiver>
<!-- <service-->
<!-- android:name=".push.alipush.AliMessageIntentService"-->
<!-- android:exported="false">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED" />-->
<!-- </intent-filter>-->
<!-- <intent-filter>-->
<!-- <action android:name="com.alibaba.push2.action.NOTIFICATION_REMOVED" />-->
<!-- </intent-filter>-->
<!-- <intent-filter>-->
<!-- <action android:name="com.alibaba.sdk.android.push.RECEIVE" />-->
<!-- </intent-filter>-->
<!-- </service>-->
</receiver> <!-- <service -->
<!-- android:name=".push.alipush.AliMessageIntentService" -->
<!-- android:exported="false"> -->
<!-- <intent-filter> -->
<!-- <action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED" /> -->
<!-- </intent-filter> -->
<!-- <intent-filter> -->
<!-- <action android:name="com.alibaba.push2.action.NOTIFICATION_REMOVED" /> -->
<!-- </intent-filter> -->
<!-- <intent-filter> -->
<!-- <action android:name="com.alibaba.sdk.android.push.RECEIVE" /> -->
<!-- </intent-filter> -->
<!-- </service> -->
<meta-data
android:name=".base.CustomGlideModule"
android:value="AppGlideModule" />
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="bQxx6zC6AvZ6O41UUPYq6X1LsQuC36dh" />
<!-- 请填写你自己的- appKey -->
android:value="bQxx6zC6AvZ6O41UUPYq6X1LsQuC36dh" /> <!-- 请填写你自己的- appKey -->
<meta-data
android:name="com.alibaba.app.appkey"
android:value="333598267" />
<!-- 请填写你自己的appSecret -->
android:value="333598267" /> <!-- 请填写你自己的appSecret -->
<meta-data
android:name="com.alibaba.app.appsecret"
android:value="300dfca550f248598bc8b86c6cb9e76e" />

View File

@@ -0,0 +1,50 @@
package com.aoleyun.sn.activity;
import android.view.View;
import android.widget.TextView;
import com.aoleyun.sn.R;
import com.aoleyun.sn.base.BaseActivity;
import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.ToastUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
public class CleanupActivity extends BaseActivity {
@BindView(R.id.tv_clean)
TextView tv_clean;
/**
* 设置布局
*/
@Override
public int getLayoutId() {
return R.layout.activity_cleanup;
}
/**
* 初始化视图
*/
@Override
public void initView() {
ButterKnife.bind(this);
tv_clean.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
JGYUtils.getInstance().cleanBackgroundMemory();
ToastUtil.show("清理完成");
finish();
}
});
}
/**
* 初始化数据
*/
@Override
public void initData() {
}
}

View File

@@ -40,9 +40,11 @@ import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.dialog.UpdateDialog;
import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.SysSettingUtils;
import com.aoleyun.sn.utils.TimeUtils;
import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils;
import com.blankj.utilcode.util.NetworkUtils;
@@ -76,28 +78,22 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
ImageView back;
@BindView(R.id.tv_version)
TextView tv_version;
@BindView(R.id.bt_update)
Button bt_update;
@BindView(R.id.tv_activation_time)
TextView tv_activation_time;
@BindView(R.id.iv_update)
ImageView iv_update;
@BindView(R.id.iv_active_state)
ImageView iv_active_state;
@BindView(R.id.iv_head)
ImageView iv_head;
@BindView(R.id.tv_name)
TextView tv_name;
@BindView(R.id.tv_batch)
TextView tv_batch;
@BindView(R.id.cl_student)
ConstraintLayout cl_student;
@BindView(R.id.tv_number)
TextView tv_number;
@BindView(R.id.cl_serial)
ConstraintLayout cl_serial;
@BindView(R.id.cl_class)
ConstraintLayout cl_class;
@BindView(R.id.tv_class)
TextView tv_class;
@BindView(R.id.cl_number_name)
ConstraintLayout cl_number_name;
@BindView(R.id.tv_number_name)
TextView tv_number_name;
@BindView(R.id.tv_model)
TextView tv_model;
@BindView(R.id.cl_ota)
@@ -105,19 +101,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@BindView(R.id.tv_system_version)
TextView tv_system_version;
@BindView(R.id.tv_battery)
TextView tv_battery;
@BindView(R.id.tv_voltage)
TextView tv_voltage;
@BindView(R.id.tv_wifi)
TextView tv_wifi;
@BindView(R.id.tv_signal)
TextView tv_signal;
@BindView(R.id.tv_ip)
TextView tv_ip;
@BindView(R.id.tv_public_ip)
TextView tv_public_ip;
@BindView(R.id.tv_serial)
TextView tv_serial;
@BindView(R.id.tv_imei)
@@ -190,31 +173,19 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
mMainAPresenter.setLifecycle(lifecycleSubject);
JGYUtils.startServices(MainActivity.this);
getDevicesInfo();
if (Utils.isWifiAvailable(MainActivity.this)) {
tv_signal.setText(Utils.obtainWifiInfo(MainActivity.this) + "dbm");
} else {
tv_signal.setText("未连接");
}
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AH6016Platform) {
cl_student.setVisibility(View.GONE);
cl_serial.setVisibility(View.VISIBLE);
cl_class.setVisibility(View.GONE);
cl_number_name.setVisibility(View.VISIBLE);
String sn = Utils.getSn();
if (!TextUtils.isEmpty(sn)) {
if (sn.length() > 4) {
tv_number_name.setText(sn.substring(sn.length() - 4));
// tv_number_name.setText(sn.substring(sn.length() - 4));
} else {
tv_number_name.setText(sn);
// tv_number_name.setText(sn);
}
}
} else {
cl_student.setVisibility(View.VISIBLE);
cl_serial.setVisibility(View.GONE);
cl_class.setVisibility(View.VISIBLE);
cl_number_name.setVisibility(View.GONE);
}
bt_update.setOnClickListener(new View.OnClickListener() {
iv_update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, UpdateActivity.class));
@@ -369,12 +340,8 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
public void setLockedState(boolean loocked) {
Log.e(TAG, "setLockedState: " + loocked);
if (loocked) {
// iv_locked.setVisibility(View.VISIBLE);
// iv_locked.setImageDrawable(getDrawable(R.drawable.locked));
mMainAPresenter.getStudesInfo();
} else {
// iv_locked.setVisibility(View.VISIBLE);
// iv_locked.setImageDrawable(getDrawable(R.drawable.unlock));
setNumberText("", View.GONE);
setNameText("", View.GONE);
setClassText("", View.GONE);
@@ -393,8 +360,12 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override
public void setStudesInfo(StudentsInfo studesInfo) {
if (studesInfo == null) {
iv_active_state.setImageDrawable(getDrawable(R.drawable.icon_inactivated));
return;
}
iv_active_state.setImageDrawable(getDrawable(R.drawable.icon_activated));
long activation_time = studesInfo.getActivation_time();
tv_activation_time.setText("激活时间:" + TimeUtils.getActivationTime(activation_time));
int trade_type = studesInfo.getTrade_type();
String sno = studesInfo.getSno();
String realname = studesInfo.getRealname();
@@ -409,7 +380,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
tv_bind_status.setText("未绑定");
}
settradeType(trade_type);
if (TextUtils.isEmpty(sno)) {
setNumberText("未设置", View.GONE);
@@ -457,7 +427,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override
public void setPublicIp(String ip) {
Log.e(TAG, "setPublicIp: " + ip);
tv_public_ip.setText(ip);
mMainAPresenter.checkAoleyunUpdate();
}
@@ -702,7 +671,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
switch (intent.getAction()) {
case WifiManager.RSSI_CHANGED_ACTION:
int rssi = intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -1);
tv_signal.setText(rssi + "dBm");
// tv_signal.setText(rssi + "dBm");
//这函数可以计算出信号的等级
int strength = WifiManager.calculateSignalLevel(rssi, 5);
Log.e(TAG, "wifi信号强度变化");
@@ -712,16 +681,16 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (info.getState().equals(NetworkInfo.State.DISCONNECTED)) {
Log.e(TAG, getString(R.string.wifi_disconnected));
tv_wifi.setText(getString(R.string.wifi_disconnected));
tv_signal.setText("");
tv_ip.setText(getString(R.string.unknown));
// tv_wifi.setText(getString(R.string.wifi_disconnected));
// tv_signal.setText("");
// tv_ip.setText(getString(R.string.unknown));
} else if (info.getState().equals(NetworkInfo.State.CONNECTED)) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
//获取当前wifi名称
String newSSID = wifiInfo.getSSID();
tv_wifi.setText(newSSID);
tv_ip.setText(Formatter.formatIpAddress(wifiInfo.getIpAddress()));
// tv_wifi.setText(newSSID);
// tv_ip.setText(Formatter.formatIpAddress(wifiInfo.getIpAddress()));
setMac();
Log.e(TAG, "连接到网络 " + newSSID);
}
@@ -765,9 +734,9 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
int level = intent.getIntExtra(EXTRA_LEVEL, 0);
int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);
String levelStr = getLevel(level);
tv_battery.setText("电量:" + levelStr);
// tv_battery.setText("电量:" + levelStr);
String batteryVoltStr = getBatteryVolt(batteryVolt);
tv_voltage.setText("电压:" + batteryVoltStr);
// tv_voltage.setText("电压:" + batteryVoltStr);
}
}
}

View File

@@ -135,8 +135,13 @@ public class BaseApplication extends MultiDexApplication {
@Override
public void onNext(String code) {
Log.e("initRegisterObservable", "onNext: " + code);
Log.e("initRegisterObservable", "onNext: 重新注册aliyunPush");
aliyunPushInit();
switch (code){
case "PUSH_20110":
break;
default:
Log.e("initRegisterObservable", "onNext: 重新注册aliyunPush");
aliyunPushInit();
}
}
@Override

View File

@@ -8,9 +8,10 @@ import com.google.gson.JsonParser;
import java.io.Serializable;
public class StudentsInfo implements Serializable {
private static final long serialVersionUID = -1489445700991359595L;
int id;
long activation_time;
String batch;
String sno;
String realname;
@@ -22,6 +23,22 @@ public class StudentsInfo implements Serializable {
String bind_mobile;
int bind_status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public long getActivation_time() {
return activation_time;
}
public void setActivation_time(long activation_time) {
this.activation_time = activation_time;
}
public String getBatch() {
return batch;
}

View File

@@ -0,0 +1,53 @@
package com.aoleyun.sn.hook;
import android.app.IActivityController;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.util.Log;
import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.ToastUtil;
public class AoleyunActivityController extends IActivityController.Stub {
private static final String TAG = AoleyunActivityController.class.getSimpleName();
@Override
public boolean activityStarting(Intent intent, String pkg) {
Log.e(TAG, "activityStarting: " + pkg + ", intent= " + intent);
//retrun false;//false 则不会启动,直接返回。
return JGYUtils.getInstance().isForbid(pkg);
}
@Override
public boolean activityResuming(String pkg) {
Log.e(TAG, "activityResuming: " + pkg);
return true;
}
@Override
public int appEarlyNotResponding(String processName, int pid, String annotation) {
Log.e(TAG, "appEarlyNotResponding: " + processName);
return 0;
}
@Override
public boolean appCrashed(String processName, int pid, String shortMsg, String longMsg, long timeMillis, String stackTrace) {
Log.e(TAG, "appCrashed: " + processName);
return false;
}
@Override
public int appNotResponding(String processName, int pid, String processStats) {
Log.e(TAG, "appNotResponding: " + processName);
return 0;
}
@Override
public int systemNotResponding(String msg) {
Log.e(TAG, "systemNotResponding: " + msg);
return 1;
}
}

View File

@@ -2038,6 +2038,7 @@ public class NetInterfaceManager {
} else {
Log.e(TAG, "setDefaultApp: default_IME is empty");
}
JGYUtils.getInstance().setDefaultBrowser(default_IME);
String default_launcher = defaultApp.getDefault_launcher();
if (!TextUtils.isEmpty(default_launcher)) {
JGYUtils.getInstance().setDefaultDesktop(default_launcher);
@@ -2410,8 +2411,9 @@ public class NetInterfaceManager {
tagSets.add(JGYUtils.ZR6016Tag);
} else if (platform == JGYUtils.HRAD13Platform) {
tagSets.add(JGYUtils.HRAD13Tag);
} else if (platform == JGYUtils.C2Platform) {
tagSets.add(JGYUtils.C2Tag);
}
});
Log.e(TAG, "clearAndAppendTags: " + tagSets);
String[] tag = new ArrayList<>(tagSets).toArray(new String[tagSets.size()]);

View File

@@ -59,6 +59,7 @@ import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.tencent.mmkv.MMKV;
@@ -1082,13 +1083,19 @@ public class PushManager {
JGYUtils.getInstance().setDefaultDesktop("");
} else {
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
String default_launcher = jsonObject.get("default_launcher").getAsString();
if (TextUtils.isEmpty(default_launcher)) {
JsonElement launcherElement = jsonObject.get("default_launcher");
if (launcherElement.isJsonNull()){
JGYUtils.getInstance().setDefaultDesktop("");
SPUtils.put(mContext, "default_launcher", "");
} else {
JGYUtils.getInstance().setDefaultDesktop(default_launcher);
SPUtils.put(mContext, "default_launcher", default_launcher);
}else {
String default_launcher = launcherElement.getAsString();
if ( TextUtils.isEmpty(default_launcher)) {
JGYUtils.getInstance().setDefaultDesktop("");
SPUtils.put(mContext, "default_launcher", "");
} else {
JGYUtils.getInstance().setDefaultDesktop(default_launcher);
SPUtils.put(mContext, "default_launcher", default_launcher);
}
}
}
}

View File

@@ -1,34 +0,0 @@
package com.aoleyun.sn.service;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
// 下载管理服务
public class DownloadService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
flags = START_STICKY;
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onCreate() {
super.onCreate();
startService(new Intent(this, StepService.class));
startService(new Intent(this, GuardService.class));
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}

View File

@@ -1,7 +1,9 @@
package com.aoleyun.sn.service.main;
import android.annotation.SuppressLint;
import android.app.ActivityManagerNative;
import android.app.AlarmManager;
import android.app.IActivityManager;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
@@ -21,6 +23,7 @@ import android.os.Binder;
import android.os.Build;
import android.os.Handler;
import android.os.IBinder;
import android.os.RemoteException;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.DisplayMetrics;
@@ -45,6 +48,7 @@ import com.aoleyun.sn.comm.CommonConfig;
import com.aoleyun.sn.comm.JGYActions;
import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.gson.GsonUtils;
import com.aoleyun.sn.hook.AoleyunActivityController;
import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.rlog.LogDBManager;
import com.aoleyun.sn.utils.ApkUtils;
@@ -353,6 +357,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
TimeTask task = new TimeTask();
task.execute("ntp.aliyun.com");
mPresenter.getLockedState();
Settings.Global.putString(getContentResolver(), "AOLE_SERIAL", Utils.getSerial(MainService.this));
PackageManager pm = getPackageManager();
try {
@@ -440,6 +445,14 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
// notificationManager = NotificationManagerCompat.from(this);
// createNotificationChannel();
// aliyunPushInit();
IActivityManager activityManager = ActivityManagerNative.getDefault();
try {
activityManager.setActivityController(new AoleyunActivityController(), true);
} catch (RemoteException e) {
Log.e(TAG, "setActivityController: " + e.getMessage());
e.printStackTrace();
}
}
@Override
@@ -1143,18 +1156,18 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override
public void getEbagCodeFinish(boolean activation) {
if (activation){
if (activation) {
mPresenter.getExclusiveAdminApp();
Log.e(TAG, "getEBagCodeFinish: "+"已激活" );
}else {
Log.e(TAG, "getEBagCodeFinish: " + "已激活");
} else {
mPresenter.getWiFiPasswd();
Log.e(TAG, "getEBagCodeFinish: "+"未激活" );
Log.e(TAG, "getEBagCodeFinish: " + "未激活");
}
}
@Override
public void getExclusiveAdminAppFinish() {
Log.e(TAG, "getAdminAppFinish: " );
Log.e(TAG, "getAdminAppFinish: ");
mPresenter.getWiFiPasswd();
}

View File

@@ -755,14 +755,17 @@ public class ApkUtils {
// this.add("com.shoufei.aole");
}};
public static List<String> aoleyunAPP = new ArrayList<String>() {{
public static Set<String> aoleyunAPP = new HashSet<String>() {{
this.add(BuildConfig.APPLICATION_ID);
this.add("com.aoleyun.appstore");
this.add("com.aoleyun.sn");
this.add("com.aoleyun.info");
this.add("com.aoleyun.os");
this.add("com.aoleyun.browser");
this.add("com.aoleyun.browser");
this.add("com.uiui.filecloud");
this.add("com.gl.dwlauncher");
this.add("com.qunyu.dividedroad");
this.add("com.ygyb.yischool");
}};
//出厂自带的app

View File

@@ -11,6 +11,7 @@ import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
@@ -23,6 +24,7 @@ import android.net.Uri;
import android.os.BatteryManager;
import android.os.Build;
import android.os.Environment;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
@@ -67,6 +69,7 @@ import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.kte.interfacesettings.aidl.ITools;
import com.tencent.mmkv.MMKV;
import java.io.File;
@@ -128,6 +131,8 @@ public class JGYUtils {
public static final int AH6016Platform = 9;
public static final int ZR6016Platform = 10;
public static final int HRAD13Platform = 11;
public static final int Teclast8183Platform = 12;
public static final int C2Platform = 13;
public static final String Other = "其他";
@@ -139,6 +144,8 @@ public class JGYUtils {
public static final String AH6016Tag = "AH6016";
public static final String ZR6016Tag = "ZR6016";
public static final String HRAD13Tag = "HRAD13";
public static final String Teclast8183Tag = "teclast8183";
public static final String C2Tag = "MTK8183";
private CacheHelper cacheHelper;
@@ -155,6 +162,28 @@ public class JGYUtils {
this.crv = context.getContentResolver();
this.cacheHelper = new CacheHelper(context);
initConnectedTimeCache();
if (C2Tag.equals(BuildConfig.platform)) {
Log.e(TAG, "JGYUtils: c2");
mServiceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
Log.e(TAG, "onServiceConnected: " + componentName);
try {
mITools = ITools.Stub.asInterface(iBinder);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
Log.e(TAG, "onServiceDisconnected: " + componentName);
mITools = null;
bindEbaifenService();
}
};
bindEbaifenService();
}
}
public static void init(Context context) {
@@ -173,6 +202,20 @@ public class JGYUtils {
public static native String getAuthorization();
private static final String EBAIFEN_PACKAGE = "com.kte.interfacesettings";
private static final String EBAIFEN_CLASS_NAME = "com.kte.interfacesettings.ToolsImplService";
private static final String EBAIFEN_ACTION = "com.kte.interfacesettings.aidl";
private ITools mITools;
private ServiceConnection mServiceConnection;
private void bindEbaifenService() {
Intent intent = new Intent(EBAIFEN_ACTION);
intent.setPackage(EBAIFEN_PACKAGE);
// intent.setComponent(new ComponentName(EBAIFEN_PACKAGE, EBAIFEN_CLASS_NAME));
mContext.bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);
}
public int checkSNPlatform(String sn) {
if (TextUtils.isEmpty(sn)) return UnknowPlatform;
String secondChars = sn.substring(1, 2);
@@ -212,10 +255,14 @@ public class JGYUtils {
} else if (HRAD13Tag.equalsIgnoreCase(platform)) {
Log.i(TAG, "checkAppPlatform: " + "HRAD13");
return HRAD13Platform;
} else if (C2Tag.equalsIgnoreCase(platform)) {
Log.i(TAG, "checkAppPlatform: " + "C2");
return C2Platform;
} else {
Log.i(TAG, "checkAppPlatform: " + "没有数据");
return UnknowPlatform;
}
}
public boolean isSamePlatform(String platform) {
@@ -249,6 +296,8 @@ public class JGYUtils {
getAppPlatformCallback.AppPlatform(ZR6016Platform);
} else if (HRAD13Tag.equalsIgnoreCase(platform)) {
getAppPlatformCallback.AppPlatform(HRAD13Platform);
} else if (C2Tag.equalsIgnoreCase(platform)) {
getAppPlatformCallback.AppPlatform(C2Platform);
} else {
getAppPlatformCallback.AppPlatform(UnknowPlatform);
}
@@ -272,7 +321,9 @@ public class JGYUtils {
return ZR6016Tag;
} else if (HRAD13Tag.equalsIgnoreCase(platform)) {
return HRAD13Tag;
} else {
} else if (C2Tag.equalsIgnoreCase(platform)) {
return C2Tag;
}else {
return Other;
}
}
@@ -1164,6 +1215,8 @@ public class JGYUtils {
String aole_app_forbid = String.join(",", pkgSet);
Log.e(TAG, "writeAppPackageList: " + aole_app_forbid);
boolean b = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_FORBID, aole_app_forbid);
setAppRestriction(2);
addAppInstallWhiteList(new ArrayList<>(pkgSet));
Log.e("writeAppPackageList: ", "aole_app_forbid: " + b + " " + Settings.System.getString(crv, CommonConfig.AOLE_ACTION_APP_FORBID));
}
@@ -1675,6 +1728,7 @@ public class JGYUtils {
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AH6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZR6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.HRAD13Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.C2Platform
) {
Settings.Global.putInt(crv, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, state == 1 ? 0 : 1);
Settings.Global.putInt(crv, Settings.Global.ADB_ENABLED, state == 1 ? 0 : 1);
@@ -2065,6 +2119,9 @@ public class JGYUtils {
private String Launcher3 = "com.android.launcher3";
private String Launcher3Class = "com.android.launcher3.Launcher";
private String AoleyunOs ="com.aoleyun.os";
private String AoleyunOsClass ="com.aoleyun.os.Launcher";
public void setDefaultLauncher(Context context, String defPackageName, String defClassName) {
try {
if (!TextUtils.isEmpty(defPackageName) && !TextUtils.isEmpty(defClassName)) {
@@ -2171,8 +2228,12 @@ public class JGYUtils {
}
private void openLauncher3() {
setDefaultDesktop(Launcher3, Launcher3Class);
// ApkUtils.openPackage(mContext, Launcher3);
if ("C2".equals(Build.MODEL)){
setDefaultDesktop(AoleyunOs, AoleyunOsClass);
}else {
setDefaultDesktop(Launcher3, Launcher3Class);
}
}
public String getStartClassName(String pkg) {
@@ -2242,6 +2303,8 @@ public class JGYUtils {
Log.e(TAG, "setDefaultDesktop: " + pkg + ":" + className);
Log.e(TAG, "setDefaultDesktop: " + "persist.sys.launcher.pkgname = " + SystemProperties.get("persist.sys.launcher.pkgname"));
Log.e(TAG, "setDefaultDesktop: " + "persist.sys.launcher.classname = " + SystemProperties.get("persist.sys.launcher.classname"));
setDefaultLauncher(new ComponentName(pkg, className));
}
public String getMacJson(Context context) {
@@ -2372,6 +2435,72 @@ public class JGYUtils {
}
public boolean isForbid(String pkg) {
switch (pkg) {
case "com.mediatek.camera":
case "com.android.camera2":
if (Settings.System.getInt(crv, "qch_app_camera", 0) == 1) {
ToastUtil.show("摄像头已禁止使用");
return false;
}
break;
case "com.android.dialer":
if (Settings.System.getInt(crv, "qch_call_forbid", 0) == 1) {
ToastUtil.show("电话已禁止使用");
return false;
}
break;
case "com.android.gallery3d":
if (Settings.System.getInt(crv, "qch_app_gallery", 1) == 1) {
ToastUtil.show("图库已禁止使用");
return false;
}
break;
case "com.android.documentsui":
if (Settings.System.getInt(crv, "qch_app_filemanager", 1) == 1) {
ToastUtil.show("文件已禁止使用");
return false;
}
break;
case "com.android.deskclock":
if (Settings.System.getInt(crv, "qch_app_deskclock", 0) == 1) {
ToastUtil.show("时钟已禁止使用");
return false;
}
break;
case "com.android.music":
if (Settings.System.getInt(crv, "qch_app_music", 1) == 1) {
ToastUtil.show("音乐已禁止使用");
return false;
}
break;
case "com.android.soundrecorder":
if (Settings.System.getInt(crv, "qch_app_soundrecorder", 1) == 1) {
ToastUtil.show("录音机已禁止使用");
return false;
}
break;
case "com.aoleyun.browser":
case "com.android.browser":
if (Settings.System.getInt(crv, "qch_app_browser", 1) == 1) {
ToastUtil.show("浏览器已禁止使用");
return false;
}
break;
case "com.android.messaging":
case "com.android.mms":
if (Settings.System.getInt(crv, "qch_app_sms", 1) == 1) {
ToastUtil.show("短信已禁止使用");
return false;
}
break;
default:
return true;
}
return false;
}
public static final String PACKAGE_DEVICEINFO = "com.aoleyun.sn";
public static final String CLASS_DEVICEINFO = "com.aoleyun.sn.receiver.BootReceiver";
@@ -2669,4 +2798,184 @@ public class JGYUtils {
this.add("com.teclast.zyappstore");
this.add("com.teclast.zy");
}};
/**
* 启用/禁用MTP数据传输功能
*
* @param enable
*/
void setMtpEnable(boolean enable) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "setMtpEnable: " + enable);
try {
mITools.setMtpEnable(enable);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* 启用/禁用Camera功能
*
* @param enable
*/
void setCameraEnable(boolean enable) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "setCameraEnable: " + enable);
try {
mITools.setCameraEnable(enable);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* 启用/禁用蓝牙功能
*
* @param enable
*/
void setBluetoothEnable(boolean enable) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "setBluetoothEnable: " + enable);
try {
mITools.setBluetoothEnable(enable);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* No. 7
* 启用/禁用OTG T卡功能
*
* @param enable true 启用 ,false 禁用
**/
void setSDOTGEnable(boolean enable) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "setSDOTGEnable: " + enable);
try {
mITools.setSDOTGEnable(enable);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* No. 31
* 设置apk安装黑白名单模式不会清除黑白名单数据
*
* @param pattern 0:普通模式黑白名单都不生效1黑名单模式2白名单模式
**/
void setAppRestriction(int pattern) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "setAppRestriction: " + pattern);
try {
mITools.setAppRestriction(pattern);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* No. 32
* 获取apk安装名单模式
* @return
* int 0:普通模式黑白名单都不生效1黑名单模式2白名单模式
**/
// int getAppRestrictionMode(){
//
// }
/**
* No. 33
* 设置apk安装白名单
* 在设置前需要先调用setAppRestriction用来设置apk安装模式
* 当设置了黑白名单模式但对应的黑白名单值为空时等同于设置为0普通模式黑白名单都不生效
*
* @param packageNameList 包名列表
**/
void addAppInstallWhiteList(List<String> packageNameList) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "addAppInstallWhiteList: " + packageNameList);
try {
mITools.addAppInstallWhiteList(packageNameList);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* No. 34
* 删除安装白名单列表
*
* @param packageNameList 包名列表
**/
void delAppInstallWhiteList(List<String> packageNameList) {
if (C2Tag.equals(BuildConfig.platform)) {
try {
mITools.delAppInstallWhiteList(packageNameList);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* No. 35
* 清空安装白名单列表
**/
void clearAppInstallWhiteList() {
if (C2Tag.equals(BuildConfig.platform)) {
try {
mITools.clearAppInstallWhiteList();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
/**
* No. 54
* 设置默认Launcher
*
* @param packageName apk的包名
* @param className apk的组件类名
**/
void setDefaultLauncher(ComponentName cmpName) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "setDefaultLauncher: " + cmpName);
try {
mITools.setDefaultLauncher(cmpName);
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* No. 55
* 设置默认浏览器
*
* @param packageName apk的包名
**/
public void setDefaultBrowser(String packageName) {
if (C2Tag.equals(BuildConfig.platform)) {
Log.e("ITools", "setDefaultBrowser: " + packageName);
try {
mITools.setDefaultBrowser(packageName);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
}

View File

@@ -154,6 +154,7 @@ public class SysSettingUtils {
}
//存储卡
int setting_memory = changeNum(jsonObject.get("setting_memory").getAsInt());
JGYUtils.getInstance().setSDOTGEnable(setting_memory == 0);
boolean aole_sdcard_forbid_on = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_SDCARD_FORBID_ON, setting_memory);
Log.e(TAG, "aole_sdcard_forbid_on:" + aole_sdcard_forbid_on);
} catch (Exception e) {
@@ -215,12 +216,15 @@ public class SysSettingUtils {
default:
case "usb_charge":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_CHARGE;
JGYUtils.getInstance().setMtpEnable(false);
break;
case "usb_mtp":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MTP;
JGYUtils.getInstance().setMtpEnable(true);
break;
case "usb_midi":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MIDI;
JGYUtils.getInstance().setMtpEnable(false);
break;
}
Intent usbIntent = new Intent(usbStatus);
@@ -232,6 +236,7 @@ public class SysSettingUtils {
context.sendBroadcast(usbIntent);
}
}
}
private static void setBluetooth(Context context, int state) {
@@ -295,6 +300,7 @@ public class SysSettingUtils {
//设置关闭时关闭蓝牙
}
}
JGYUtils.getInstance().setBluetoothEnable(setting_bht == 1);
} catch (Exception e) {
Log.e(TAG, "setBluetooth: " + e.getMessage());
}
@@ -401,22 +407,22 @@ public class SysSettingUtils {
int setting_statusbar = changeNum(jsonObject.get("setting_statusbar").getAsInt());
// int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0);
// if (oldNum != setting_statusbar) {
//写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示
boolean aole_hide_statusBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, setting_statusbar);
Log.e(TAG, "aole_hide_statusBar: " + aole_hide_statusBar);
String statusbarStatus = "";
switch (setting_statusbar) {
case 0:
statusbarStatus = CommonConfig.AOLE_ACTION_SHOW_STATUS_BAR;
break;
case 1:
statusbarStatus = CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR;
break;
default:
}
Intent statusIntent = new Intent(statusbarStatus);
//写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示
boolean aole_hide_statusBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, setting_statusbar);
Log.e(TAG, "aole_hide_statusBar: " + aole_hide_statusBar);
String statusbarStatus = "";
switch (setting_statusbar) {
case 0:
statusbarStatus = CommonConfig.AOLE_ACTION_SHOW_STATUS_BAR;
break;
case 1:
statusbarStatus = CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR;
break;
default:
}
Intent statusIntent = new Intent(statusbarStatus);
// Intent statusIntent = new Intent(statusbarStatus).setPackage("com.android.systemui");
context.sendBroadcast(statusIntent);
context.sendBroadcast(statusIntent);
// }
}
@@ -462,6 +468,7 @@ public class SysSettingUtils {
}
Intent cameraIntent = new Intent(cameraStatus).setPackage("com.android.settings");
context.sendBroadcast(cameraIntent);
JGYUtils.getInstance().setCameraEnable(setting_camera == 1);
} catch (Exception e) {
Log.e(TAG, "setCamera: " + e.getMessage());
}

View File

@@ -96,6 +96,12 @@ public class TimeUtils {
return sdf.format(date);
}
public static String getActivationTime(long second) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(second * 1000);
return sdf.format(date);
}
private static long getLoopTime(String timestamp) {
//"15:34:39"
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");

View File

@@ -1766,6 +1766,7 @@ public class Utils {
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AH6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZR6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.HRAD13Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.C2Platform
) {
return Utils.getProperty("ro.build.display.id", "获取失败");
} else {

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -42,32 +42,6 @@
app:layout_constraintStart_toEndOf="@+id/iv_back"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_4"
android:text="@string/unknown"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/bt_update"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/bt_update"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/dp_8"
android:background="@drawable/bt_activation_selector"
android:stateListAnimator="@null"
android:text="检查更新"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -94,8 +68,8 @@
<ImageView
android:id="@+id/iv_head"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_60"
android:layout_marginStart="@dimen/dp_20"
android:adjustViewBounds="true"
android:scaleType="centerInside"
@@ -124,192 +98,66 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="--"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
<ImageView
android:id="@+id/iv_active_state"
android:layout_width="@dimen/dp_53"
android:layout_height="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_inactivated"
app:layout_constraintStart_toStartOf="@+id/tv_name"
app:layout_constraintTop_toBottomOf="@+id/tv_name" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/dp_16"
android:gravity="center"
android:maxWidth="@dimen/dp_210"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_16"
android:paddingEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout5"
android:layout_width="@dimen/dp_40"
<TextView
android:id="@+id/tv_activation_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/dp_4"
android:text="激活时间"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_7"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_batch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="批次"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设备批次"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_batch" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/view"
android:layout_width="1px"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:background="@color/text_gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_student"
android:layout_width="@dimen/dp_40"
<ImageView
android:id="@+id/iv_update"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_48"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_update"
app:layout_constraintBottom_toTopOf="@+id/tv_version"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_activation_time" />
<TextView
android:id="@+id/tv_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_4"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/unknown"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="学号"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的学号"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_number" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_serial"
android:layout_width="@dimen/dp_40"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="编号"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/view2"
android:layout_width="1px"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:background="@color/text_gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_class"
android:layout_width="@dimen/dp_40"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view2"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_class"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="班级"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的班级"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_class" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_number_name"
android:layout_width="@dimen/dp_40"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view2"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_number_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="班级"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -399,41 +247,50 @@
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/imageView3"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_battery"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电池"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/imageView3" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_batch"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_voltage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电压"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/tv_battery" />
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:text="设备批次"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/imageView3" />
<TextView
android:id="@+id/tv_batch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/textView11"
tools:text="批次" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -441,41 +298,51 @@
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_wifi"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_wifi"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_wifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WiFi"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_wifi"
app:layout_constraintStart_toStartOf="@+id/iv_wifi"
app:layout_constraintTop_toBottomOf="@+id/iv_wifi" />
<ImageView
android:id="@+id/imageView4"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_student_id"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设备学号"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView4"
app:layout_constraintStart_toStartOf="@+id/imageView4"
app:layout_constraintTop_toBottomOf="@+id/imageView4" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView4"
app:layout_constraintStart_toStartOf="@+id/imageView4"
app:layout_constraintTop_toBottomOf="@+id/textView8"
tools:text="学号" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_signal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="信号"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_wifi"
app:layout_constraintStart_toStartOf="@+id/iv_wifi"
app:layout_constraintTop_toBottomOf="@+id/tv_wifi" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -483,41 +350,50 @@
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_ip"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_ipaddress"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_ip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内网"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_ip"
app:layout_constraintStart_toStartOf="@+id/iv_ip"
app:layout_constraintTop_toBottomOf="@+id/iv_ip" />
<ImageView
android:id="@+id/imageView5"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_class"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_public_ip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="外网"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_ip"
app:layout_constraintStart_toStartOf="@+id/iv_ip"
app:layout_constraintTop_toBottomOf="@+id/tv_ip" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设备班级"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView5"
app:layout_constraintStart_toStartOf="@+id/imageView5"
app:layout_constraintTop_toBottomOf="@+id/imageView5" />
<TextView
android:id="@+id/tv_class"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView5"
app:layout_constraintStart_toStartOf="@+id/imageView5"
app:layout_constraintTop_toBottomOf="@+id/textView9"
tools:text="班级" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -694,15 +570,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="0dp"
android:layout_height="1px"
android:layout_marginEnd="@dimen/dp_8"
android:background="@color/text_gray"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/tv_mac2" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -749,16 +616,28 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_bind_statu">
<ImageView
android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_88"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_48"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/aoleyun_qrcode"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_qrcode"
android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_88"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_48"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView

View File

@@ -42,32 +42,6 @@
app:layout_constraintStart_toEndOf="@+id/iv_back"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_4"
android:text="@string/unknown"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/bt_update"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/bt_update"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/dp_8"
android:background="@drawable/bt_activation_selector"
android:stateListAnimator="@null"
android:text="检查更新"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -94,8 +68,8 @@
<ImageView
android:id="@+id/iv_head"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_60"
android:layout_marginStart="@dimen/dp_20"
android:adjustViewBounds="true"
android:scaleType="centerInside"
@@ -124,192 +98,66 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="--"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
<ImageView
android:id="@+id/iv_active_state"
android:layout_width="@dimen/dp_53"
android:layout_height="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_8"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_inactivated"
app:layout_constraintStart_toStartOf="@+id/tv_name"
app:layout_constraintTop_toBottomOf="@+id/tv_name" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/dp_16"
android:gravity="center"
android:maxWidth="@dimen/dp_210"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_16"
android:paddingEnd="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout5"
android:layout_width="@dimen/dp_40"
<TextView
android:id="@+id/tv_activation_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/dp_4"
android:text="激活时间"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_7"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_batch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="批次"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设备批次"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_batch" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/view"
android:layout_width="1px"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:background="@color/text_gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_student"
android:layout_width="@dimen/dp_40"
<ImageView
android:id="@+id/iv_update"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_48"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_update"
app:layout_constraintBottom_toTopOf="@+id/tv_version"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_activation_time" />
<TextView
android:id="@+id/tv_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_4"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/unknown"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view"
app:layout_constraintTop_toTopOf="parent">
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="学号"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的学号"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_number" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_serial"
android:layout_width="@dimen/dp_40"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="编号"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/view2"
android:layout_width="1px"
android:layout_height="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_8"
android:background="@color/text_gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_class"
android:layout_width="@dimen/dp_40"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view2"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_class"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="班级"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的班级"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_class" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_number_name"
android:layout_width="@dimen/dp_40"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view2"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_number_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="班级"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -399,41 +247,50 @@
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/imageView3"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_battery"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电池"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/imageView3" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_batch"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_voltage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电压"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/tv_battery" />
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8"
android:text="设备批次"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/imageView3" />
<TextView
android:id="@+id/tv_batch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintStart_toStartOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/textView11"
tools:text="批次" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -441,41 +298,51 @@
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_wifi"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_wifi"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_wifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WiFi"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_wifi"
app:layout_constraintStart_toStartOf="@+id/iv_wifi"
app:layout_constraintTop_toBottomOf="@+id/iv_wifi" />
<ImageView
android:id="@+id/imageView4"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_student_id"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设备学号"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView4"
app:layout_constraintStart_toStartOf="@+id/imageView4"
app:layout_constraintTop_toBottomOf="@+id/imageView4" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView4"
app:layout_constraintStart_toStartOf="@+id/imageView4"
app:layout_constraintTop_toBottomOf="@+id/textView8"
tools:text="学号" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/tv_signal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="信号"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_wifi"
app:layout_constraintStart_toStartOf="@+id/iv_wifi"
app:layout_constraintTop_toBottomOf="@+id/tv_wifi" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
@@ -483,41 +350,50 @@
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_ip"
android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_ipaddress"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.3" />
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_ip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内网"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_ip"
app:layout_constraintStart_toStartOf="@+id/iv_ip"
app:layout_constraintTop_toBottomOf="@+id/iv_ip" />
<ImageView
android:id="@+id/imageView5"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_class"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_public_ip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="外网"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_ip"
app:layout_constraintStart_toStartOf="@+id/iv_ip"
app:layout_constraintTop_toBottomOf="@+id/tv_ip" />
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设备班级"
android:textColor="@color/black"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView5"
app:layout_constraintStart_toStartOf="@+id/imageView5"
app:layout_constraintTop_toBottomOf="@+id/imageView5" />
<TextView
android:id="@+id/tv_class"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:textColor="@color/text_gray"
android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/imageView5"
app:layout_constraintStart_toStartOf="@+id/imageView5"
app:layout_constraintTop_toBottomOf="@+id/textView9"
tools:text="班级" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -694,15 +570,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="0dp"
android:layout_height="1px"
android:layout_marginEnd="@dimen/dp_8"
android:background="@color/text_gray"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/tv_mac2" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -752,11 +619,11 @@
<ImageView
android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_88"
android:src="@drawable/aoleyun_qrcode"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_48"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:layout_marginStart="@dimen/dp_48"
android:src="@drawable/aoleyun_qrcode"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -764,9 +631,9 @@
<ImageView
android:id="@+id/iv_qrcode"
android:layout_width="@dimen/dp_88"
android:layout_marginEnd="@dimen/dp_48"
android:layout_height="@dimen/dp_88"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_48"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.CleanupActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_240"
android:layout_height="@dimen/dp_160"
android:layout_centerInParent="true"
android:background="@drawable/bg_dialog"
android:minWidth="@dimen/dp_240"
android:orientation="vertical"
android:paddingTop="@dimen/dp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_vertical"
android:text="一键加速"
android:textColor="@color/black"
android:textSize="@dimen/sp_12"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="消息提示" />
<ImageView
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_60"
android:duplicateParentState="true"
android:scaleType="centerCrop"
android:src="@drawable/icon_clean"
app:layout_constraintBottom_toTopOf="@+id/tv_clean"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<TextView
android:id="@+id/tv_clean"
android:layout_width="@dimen/dp_48"
android:layout_height="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_8"
android:layout_weight="1"
android:background="@drawable/join_background"
android:gravity="center"
android:singleLine="true"
android:text="确定"
android:textColor="@color/white"
android:textSize="@dimen/sp_8"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="确定" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -36,7 +36,7 @@
<string name="trial_time">体验卡:剩余%d天 激活成为正式版</string>
<string name="enter_activation_code">输入激活码</string>
<string name="device_data">设备数据</string>
<string name="device_data">设备型号</string>
<string name="scan_code_to_register">扫码注册小程序</string>
<string name="not_set">未设置</string>
<string name="unknown">unknown</string>
@@ -46,7 +46,6 @@
<string name="scan_applet_qrcode">小程序扫码绑定设备</string>
<string-array name="packageName">
<item>http://p18.qhimg.com/dr/72__/t0111cb71dabfd83b21.png</item>
<item>http://p18.qhimg.com/dr/72__/t01a16bcd9acd07d029.png</item>