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

@@ -29,8 +29,8 @@ android {
defaultConfig { defaultConfig {
applicationId "com.aoleyun.sn" applicationId "com.aoleyun.sn"
versionCode 88 versionCode 94
versionName "6.4.8" versionName "6.5.4"
//There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
minSdkVersion 24 minSdkVersion 24
@@ -112,7 +112,7 @@ android {
v2SigningEnabled true v2SigningEnabled true
} }
G10P{ G10P {
storeFile file("keystore/G10PMTK11.jks") storeFile file("keystore/G10PMTK11.jks")
storePassword "123456" storePassword "123456"
keyAlias "G10PMTK11" keyAlias "G10PMTK11"
@@ -121,7 +121,7 @@ android {
v2SigningEnabled true v2SigningEnabled true
} }
G10PUserDebug{ G10PUserDebug {
storeFile file("keystore/G10PUserDebug.jks") storeFile file("keystore/G10PUserDebug.jks")
storePassword "123456" storePassword "123456"
keyAlias "G10PUserDebug" keyAlias "G10PUserDebug"
@@ -130,7 +130,7 @@ android {
v2SigningEnabled true v2SigningEnabled true
} }
zhanruiG10Z{ zhanruiG10Z {
storeFile file("keystore/zhanruiG10Z.keystore") storeFile file("keystore/zhanruiG10Z.keystore")
storePassword "123456" storePassword "123456"
keyAlias "zhanruiG10Z" keyAlias "zhanruiG10Z"
@@ -183,6 +183,20 @@ android {
} }
buildTypes { buildTypes {
c2Debug.initWith(debug)
c2Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.teclast8183
buildConfigField "String", "platform", '"MTK8183"'
}
c2Release.initWith(release)
c2Release {
signingConfig signingConfigs.teclast8183
buildConfigField "String", "platform", '"MTK8183"'
}
teclast8183Debug.initWith(debug) teclast8183Debug.initWith(debug)
teclast8183Debug { teclast8183Debug {
versionNameSuffix "-debug" versionNameSuffix "-debug"
@@ -384,6 +398,7 @@ dependencies {
compileOnly files('libs/framework.jar') compileOnly files('libs/framework.jar')
compileOnly files('libs/cube_mdm.jar') compileOnly files('libs/cube_mdm.jar')
compileOnly files('libs/cube_sdk_v1.0.0.jar') compileOnly files('libs/cube_sdk_v1.0.0.jar')
implementation files('libs/ebf_tools_v1.0.jar')
implementation files('libs/vendor.mediatek.hardware.nvram-V1.0-java.jar') implementation files('libs/vendor.mediatek.hardware.nvram-V1.0-java.jar')
implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.recyclerview:recyclerview:1.2.1'

BIN
app/keystore/P22.keystore Normal file

Binary file not shown.

BIN
app/libs/ebf_tools_v1.0.jar Normal file

Binary file not shown.

118
app/libs/接口说明.txt Normal file
View File

@@ -0,0 +1,118 @@
一:对接方式: aidl
1.导入jar包依赖
2.绑定aidl服务:
Intent intent = new Intent("com.kte.interfacesettings.aidl");
intent.setPackage("com.kte.interfacesettings");
context.bindService(intent, aidlConnection, Context.BIND_AUTO_CREATE);
3.解绑服务:
unbindService(mConnection);
二:接口说明
// 启用/禁用MTP数据传输功能 :
void setMtpEnable(boolean enable);
// 启用/禁用Camera功能 :
void setCameraEnable(boolean enable);
// 启用/禁用蓝牙功能 :
void setBluetoothEnable(boolean enable);
// 启用/禁用wifi :
void setWifiAdvanceEnable(boolean enable);
// 设置默认浏览器:
void setDefaultBrowser(String packageName);
// 关机功能:
void shutdownDevice();
// 睡眠/唤醒功能(熄屏亮屏):
void lockNow(boolean on);
// 设置背光亮度(屏幕亮度-1,0-255 ):
void setBackLightBrightness(int brightness);
// 禁用/启用 飞行模式:
void setAirplaneDisable(boolean disable);
// 重启功能:
void rebootDevice();
// 清除最近任务:
void clearRecentTask();
// 清除应用数据:
void clearAppData(String packageName);
// 恢复出厂设置:
void wipeData();
// 静默安装apk功能
void silentInstall(String path,boolean autoLa);
// 静默卸载apk功能
void silentUninstall(String pkgName);
// 获取硬件MAC地址:
String getMACaddress();
// 静默截图功能(截屏)
Bitmap captureScreen(String savePath);
// 设置默认输入法
boolean setDefaultInputMethod(String ime);
// 设置默认播放器
boolean setDefaultVideoPlayer(String packageName,String className);
// 获取root状态
boolean isRooted();
// 设置锁屏壁纸
void setLockWallPaper(String filePath);
// 显示/隐藏下拉状态栏图标
void showNotificationItems(int item, boolean visible);
// 显隐系统设置项:
void setSettingOptionGoneorVisible(int item ,boolean visible);
// 获取当前所有正在运行的第三方应用进程接口
List<String> getThirdAppPkgList();
/**
* 打开/关闭护眼模式(夜间模式)
* @param state
* true 关闭;false 打开;默认是关闭状态;
**/
void setProtectEyeModeClosed(boolean state);
/**
* 获取护眼模式状态(夜间模式)
* @return state
* true 打开;false 关闭;
**/
boolean getProtectEyeMode();
/**
* 打开/关闭阅读模式(黑白屏)
* @param state
* true 关闭;false 打开;默认是关闭状态;
**/
void setReaderModeClosed(boolean state);
/**
* 获取阅读模式(黑白屏)
* @return state
* true 打开;false 关闭;
**/
boolean getReaderMode();

View File

@@ -25,7 +25,6 @@
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_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.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.BATTERY_STATS" /> <uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" /> <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.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.SHUTDOWN" /> <uses-permission android:name="android.permission.SHUTDOWN" />
<uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission <uses-permission
android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS" android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"
android:maxSdkVersion="22" /> android:maxSdkVersion="22" />
<uses-permission <uses-permission
android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" 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" />
<uses-permission <uses-permission
android:name="android.permission.INSTALL_PACKAGES" android:name="android.permission.INSTALL_PACKAGES"
tools:ignore="ProtectedPermissions" /> 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" />
<uses-permission <uses-permission
android:name="android.permission.DELETE_PACKAGES" android:name="android.permission.DELETE_PACKAGES"
tools:ignore="ProtectedPermissions" /> tools:ignore="ProtectedPermissions" /> <!-- 自定义安装应用权限 -->
<!--自定义安装应用权限-->
<uses-permission android:name="com.aoleyun.sn.permissions.INSTALL_APK" /> <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定位 --> <!-- 用于访问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信息会用于进行网络定位 --> <!-- 用于访问wifi网络信息wifi信息会用于进行网络定位 -->
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />--> <!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> -->
<!-- 用于获取wifi的获取权限wifi信息会用来进行网络定位 --> <!-- 用于获取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模块 --> <!-- 用于申请调用A-GPS模块 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限 -->
<!-- 如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限 --> <!-- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> -->
<!-- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />-->
<!-- 如果您的应用需要后台定位权限且有可能运行在Android Q设备上,并且设置了target>28必须增加这个权限声明 --> <!-- 如果您的应用需要后台定位权限且有可能运行在Android Q设备上,并且设置了target>28必须增加这个权限声明 -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
@@ -142,7 +112,8 @@
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity <activity
android:name=".activity.SplashActivity" android:name=".activity.SplashActivity"
android:exported="true"> android:exported="true"
android:screenOrientation="userPortrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
@@ -157,21 +128,35 @@
android:launchMode="singleInstance" android:launchMode="singleInstance"
android:screenOrientation="userLandscape" android:screenOrientation="userLandscape"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </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 <activity
android:name=".activity.checknet.CheckNetActivity" android:name=".activity.checknet.CheckNetActivity"
android:theme="@style/activity_styles"> 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>
<activity <activity
android:name=".activity.main.MainActivity" android:name=".activity.main.MainActivity"
@@ -304,21 +289,15 @@
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" /> android:resource="@xml/file_paths" />
</provider> </provider> <!-- 百度地图 -->
<!--百度地图-->
<!-- 声明service组件 --> <!-- 声明service组件 -->
<service <service
android:name="com.baidu.location.f" android:name="com.baidu.location.f"
android:enabled="true" android:enabled="true"
android:process=":remote" /> android:process=":remote" /> <!-- 应用的其它配置 -->
<!-- 应用的其它配置 -->
<uses-library <uses-library
android:name="org.apache.http.legacy" android:name="org.apache.http.legacy"
android:required="false" /> android:required="false" /> <!-- 消息接收监听器 (用户可自主扩展) -->
<!-- 消息接收监听器 (用户可自主扩展) -->
<receiver <receiver
android:name=".push.alipush.AliyunMessageReceiver" android:name=".push.alipush.AliyunMessageReceiver"
android:exported="false"> android:exported="false">
@@ -331,33 +310,28 @@
<intent-filter> <intent-filter>
<action android:name="com.alibaba.sdk.android.push.RECEIVE" /> <action android:name="com.alibaba.sdk.android.push.RECEIVE" />
</intent-filter> </intent-filter>
</receiver> </receiver> <!-- <service -->
<!-- android:name=".push.alipush.AliMessageIntentService" -->
<!-- <service--> <!-- android:exported="false"> -->
<!-- android:name=".push.alipush.AliMessageIntentService"--> <!-- <intent-filter> -->
<!-- android:exported="false">--> <!-- <action android:name="com.alibaba.push2.action.NOTIFICATION_OPENED" /> -->
<!-- <intent-filter>--> <!-- </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.push2.action.NOTIFICATION_REMOVED" />--> <!-- <intent-filter> -->
<!-- </intent-filter>--> <!-- <action android:name="com.alibaba.sdk.android.push.RECEIVE" /> -->
<!-- <intent-filter>--> <!-- </intent-filter> -->
<!-- <action android:name="com.alibaba.sdk.android.push.RECEIVE" />--> <!-- </service> -->
<!-- </intent-filter>-->
<!-- </service>-->
<meta-data <meta-data
android:name=".base.CustomGlideModule" android:name=".base.CustomGlideModule"
android:value="AppGlideModule" /> android:value="AppGlideModule" />
<meta-data <meta-data
android:name="com.baidu.lbsapi.API_KEY" android:name="com.baidu.lbsapi.API_KEY"
android:value="bQxx6zC6AvZ6O41UUPYq6X1LsQuC36dh" /> android:value="bQxx6zC6AvZ6O41UUPYq6X1LsQuC36dh" /> <!-- 请填写你自己的- appKey -->
<!-- 请填写你自己的- appKey -->
<meta-data <meta-data
android:name="com.alibaba.app.appkey" android:name="com.alibaba.app.appkey"
android:value="333598267" /> android:value="333598267" /> <!-- 请填写你自己的appSecret -->
<!-- 请填写你自己的appSecret -->
<meta-data <meta-data
android:name="com.alibaba.app.appsecret" android:name="com.alibaba.app.appsecret"
android:value="300dfca550f248598bc8b86c6cb9e76e" /> 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.comm.JGYActions;
import com.aoleyun.sn.dialog.UpdateDialog; import com.aoleyun.sn.dialog.UpdateDialog;
import com.aoleyun.sn.service.main.MainService; import com.aoleyun.sn.service.main.MainService;
import com.aoleyun.sn.utils.ApkUtils;
import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.JGYUtils;
import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.SPUtils;
import com.aoleyun.sn.utils.SysSettingUtils; import com.aoleyun.sn.utils.SysSettingUtils;
import com.aoleyun.sn.utils.TimeUtils;
import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.ToastUtil;
import com.aoleyun.sn.utils.Utils; import com.aoleyun.sn.utils.Utils;
import com.blankj.utilcode.util.NetworkUtils; import com.blankj.utilcode.util.NetworkUtils;
@@ -76,28 +78,22 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
ImageView back; ImageView back;
@BindView(R.id.tv_version) @BindView(R.id.tv_version)
TextView tv_version; TextView tv_version;
@BindView(R.id.bt_update) @BindView(R.id.tv_activation_time)
Button bt_update; 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) @BindView(R.id.iv_head)
ImageView iv_head; ImageView iv_head;
@BindView(R.id.tv_name) @BindView(R.id.tv_name)
TextView tv_name; TextView tv_name;
@BindView(R.id.tv_batch) @BindView(R.id.tv_batch)
TextView tv_batch; TextView tv_batch;
@BindView(R.id.cl_student)
ConstraintLayout cl_student;
@BindView(R.id.tv_number) @BindView(R.id.tv_number)
TextView 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) @BindView(R.id.tv_class)
TextView 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) @BindView(R.id.tv_model)
TextView tv_model; TextView tv_model;
@BindView(R.id.cl_ota) @BindView(R.id.cl_ota)
@@ -105,19 +101,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@BindView(R.id.tv_system_version) @BindView(R.id.tv_system_version)
TextView 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) @BindView(R.id.tv_serial)
TextView tv_serial; TextView tv_serial;
@BindView(R.id.tv_imei) @BindView(R.id.tv_imei)
@@ -190,31 +173,19 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
mMainAPresenter.setLifecycle(lifecycleSubject); mMainAPresenter.setLifecycle(lifecycleSubject);
JGYUtils.startServices(MainActivity.this); JGYUtils.startServices(MainActivity.this);
getDevicesInfo(); getDevicesInfo();
if (Utils.isWifiAvailable(MainActivity.this)) {
tv_signal.setText(Utils.obtainWifiInfo(MainActivity.this) + "dbm");
} else {
tv_signal.setText("未连接");
}
if (JGYUtils.getInstance().checkAppPlatform() == JGYUtils.AH6016Platform) { 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(); String sn = Utils.getSn();
if (!TextUtils.isEmpty(sn)) { if (!TextUtils.isEmpty(sn)) {
if (sn.length() > 4) { if (sn.length() > 4) {
tv_number_name.setText(sn.substring(sn.length() - 4)); // tv_number_name.setText(sn.substring(sn.length() - 4));
} else { } else {
tv_number_name.setText(sn); // tv_number_name.setText(sn);
} }
} }
} else { } 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 @Override
public void onClick(View view) { public void onClick(View view) {
startActivity(new Intent(MainActivity.this, UpdateActivity.class)); startActivity(new Intent(MainActivity.this, UpdateActivity.class));
@@ -369,12 +340,8 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
public void setLockedState(boolean loocked) { public void setLockedState(boolean loocked) {
Log.e(TAG, "setLockedState: " + loocked); Log.e(TAG, "setLockedState: " + loocked);
if (loocked) { if (loocked) {
// iv_locked.setVisibility(View.VISIBLE);
// iv_locked.setImageDrawable(getDrawable(R.drawable.locked));
mMainAPresenter.getStudesInfo(); mMainAPresenter.getStudesInfo();
} else { } else {
// iv_locked.setVisibility(View.VISIBLE);
// iv_locked.setImageDrawable(getDrawable(R.drawable.unlock));
setNumberText("", View.GONE); setNumberText("", View.GONE);
setNameText("", View.GONE); setNameText("", View.GONE);
setClassText("", View.GONE); setClassText("", View.GONE);
@@ -393,8 +360,12 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override @Override
public void setStudesInfo(StudentsInfo studesInfo) { public void setStudesInfo(StudentsInfo studesInfo) {
if (studesInfo == null) { if (studesInfo == null) {
iv_active_state.setImageDrawable(getDrawable(R.drawable.icon_inactivated));
return; 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(); int trade_type = studesInfo.getTrade_type();
String sno = studesInfo.getSno(); String sno = studesInfo.getSno();
String realname = studesInfo.getRealname(); String realname = studesInfo.getRealname();
@@ -409,7 +380,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
tv_bind_status.setText("未绑定"); tv_bind_status.setText("未绑定");
} }
settradeType(trade_type); settradeType(trade_type);
if (TextUtils.isEmpty(sno)) { if (TextUtils.isEmpty(sno)) {
setNumberText("未设置", View.GONE); setNumberText("未设置", View.GONE);
@@ -457,7 +427,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
@Override @Override
public void setPublicIp(String ip) { public void setPublicIp(String ip) {
Log.e(TAG, "setPublicIp: " + ip); Log.e(TAG, "setPublicIp: " + ip);
tv_public_ip.setText(ip);
mMainAPresenter.checkAoleyunUpdate(); mMainAPresenter.checkAoleyunUpdate();
} }
@@ -702,7 +671,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
switch (intent.getAction()) { switch (intent.getAction()) {
case WifiManager.RSSI_CHANGED_ACTION: case WifiManager.RSSI_CHANGED_ACTION:
int rssi = intent.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -1); 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); int strength = WifiManager.calculateSignalLevel(rssi, 5);
Log.e(TAG, "wifi信号强度变化"); Log.e(TAG, "wifi信号强度变化");
@@ -712,16 +681,16 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (info.getState().equals(NetworkInfo.State.DISCONNECTED)) { if (info.getState().equals(NetworkInfo.State.DISCONNECTED)) {
Log.e(TAG, getString(R.string.wifi_disconnected)); Log.e(TAG, getString(R.string.wifi_disconnected));
tv_wifi.setText(getString(R.string.wifi_disconnected)); // tv_wifi.setText(getString(R.string.wifi_disconnected));
tv_signal.setText(""); // tv_signal.setText("");
tv_ip.setText(getString(R.string.unknown)); // tv_ip.setText(getString(R.string.unknown));
} else if (info.getState().equals(NetworkInfo.State.CONNECTED)) { } else if (info.getState().equals(NetworkInfo.State.CONNECTED)) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); WifiInfo wifiInfo = wifiManager.getConnectionInfo();
//获取当前wifi名称 //获取当前wifi名称
String newSSID = wifiInfo.getSSID(); String newSSID = wifiInfo.getSSID();
tv_wifi.setText(newSSID); // tv_wifi.setText(newSSID);
tv_ip.setText(Formatter.formatIpAddress(wifiInfo.getIpAddress())); // tv_ip.setText(Formatter.formatIpAddress(wifiInfo.getIpAddress()));
setMac(); setMac();
Log.e(TAG, "连接到网络 " + newSSID); Log.e(TAG, "连接到网络 " + newSSID);
} }
@@ -765,9 +734,9 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
int level = intent.getIntExtra(EXTRA_LEVEL, 0); int level = intent.getIntExtra(EXTRA_LEVEL, 0);
int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1); int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);
String levelStr = getLevel(level); String levelStr = getLevel(level);
tv_battery.setText("电量:" + levelStr); // tv_battery.setText("电量:" + levelStr);
String batteryVoltStr = getBatteryVolt(batteryVolt); String batteryVoltStr = getBatteryVolt(batteryVolt);
tv_voltage.setText("电压:" + batteryVoltStr); // tv_voltage.setText("电压:" + batteryVoltStr);
} }
} }
} }

View File

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

View File

@@ -8,9 +8,10 @@ import com.google.gson.JsonParser;
import java.io.Serializable; import java.io.Serializable;
public class StudentsInfo implements Serializable { public class StudentsInfo implements Serializable {
private static final long serialVersionUID = -1489445700991359595L; private static final long serialVersionUID = -1489445700991359595L;
int id;
long activation_time;
String batch; String batch;
String sno; String sno;
String realname; String realname;
@@ -22,6 +23,22 @@ public class StudentsInfo implements Serializable {
String bind_mobile; String bind_mobile;
int bind_status; 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() { public String getBatch() {
return batch; 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 { } else {
Log.e(TAG, "setDefaultApp: default_IME is empty"); Log.e(TAG, "setDefaultApp: default_IME is empty");
} }
JGYUtils.getInstance().setDefaultBrowser(default_IME);
String default_launcher = defaultApp.getDefault_launcher(); String default_launcher = defaultApp.getDefault_launcher();
if (!TextUtils.isEmpty(default_launcher)) { if (!TextUtils.isEmpty(default_launcher)) {
JGYUtils.getInstance().setDefaultDesktop(default_launcher); JGYUtils.getInstance().setDefaultDesktop(default_launcher);
@@ -2410,8 +2411,9 @@ public class NetInterfaceManager {
tagSets.add(JGYUtils.ZR6016Tag); tagSets.add(JGYUtils.ZR6016Tag);
} else if (platform == JGYUtils.HRAD13Platform) { } else if (platform == JGYUtils.HRAD13Platform) {
tagSets.add(JGYUtils.HRAD13Tag); tagSets.add(JGYUtils.HRAD13Tag);
} else if (platform == JGYUtils.C2Platform) {
tagSets.add(JGYUtils.C2Tag);
} }
}); });
Log.e(TAG, "clearAndAppendTags: " + tagSets); Log.e(TAG, "clearAndAppendTags: " + tagSets);
String[] tag = new ArrayList<>(tagSets).toArray(new String[tagSets.size()]); 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.baidu.location.LocationClient;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.tencent.mmkv.MMKV; import com.tencent.mmkv.MMKV;
@@ -1082,13 +1083,19 @@ public class PushManager {
JGYUtils.getInstance().setDefaultDesktop(""); JGYUtils.getInstance().setDefaultDesktop("");
} else { } else {
JsonObject jsonObject = GsonUtils.getJsonObject(extras); JsonObject jsonObject = GsonUtils.getJsonObject(extras);
String default_launcher = jsonObject.get("default_launcher").getAsString(); JsonElement launcherElement = jsonObject.get("default_launcher");
if (TextUtils.isEmpty(default_launcher)) { if (launcherElement.isJsonNull()){
JGYUtils.getInstance().setDefaultDesktop(""); JGYUtils.getInstance().setDefaultDesktop("");
SPUtils.put(mContext, "default_launcher", ""); SPUtils.put(mContext, "default_launcher", "");
} else { }else {
JGYUtils.getInstance().setDefaultDesktop(default_launcher); String default_launcher = launcherElement.getAsString();
SPUtils.put(mContext, "default_launcher", default_launcher); 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; package com.aoleyun.sn.service.main;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.ActivityManagerNative;
import android.app.AlarmManager; import android.app.AlarmManager;
import android.app.IActivityManager;
import android.app.NotificationChannel; import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.app.Service; import android.app.Service;
@@ -21,6 +23,7 @@ import android.os.Binder;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.os.RemoteException;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.DisplayMetrics; 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.JGYActions;
import com.aoleyun.sn.comm.PackageNames; import com.aoleyun.sn.comm.PackageNames;
import com.aoleyun.sn.gson.GsonUtils; import com.aoleyun.sn.gson.GsonUtils;
import com.aoleyun.sn.hook.AoleyunActivityController;
import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.network.NetInterfaceManager;
import com.aoleyun.sn.rlog.LogDBManager; import com.aoleyun.sn.rlog.LogDBManager;
import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.ApkUtils;
@@ -353,6 +357,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
TimeTask task = new TimeTask(); TimeTask task = new TimeTask();
task.execute("ntp.aliyun.com"); task.execute("ntp.aliyun.com");
mPresenter.getLockedState(); mPresenter.getLockedState();
Settings.Global.putString(getContentResolver(), "AOLE_SERIAL", Utils.getSerial(MainService.this));
PackageManager pm = getPackageManager(); PackageManager pm = getPackageManager();
try { try {
@@ -440,6 +445,14 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
// notificationManager = NotificationManagerCompat.from(this); // notificationManager = NotificationManagerCompat.from(this);
// createNotificationChannel(); // createNotificationChannel();
// aliyunPushInit(); // aliyunPushInit();
IActivityManager activityManager = ActivityManagerNative.getDefault();
try {
activityManager.setActivityController(new AoleyunActivityController(), true);
} catch (RemoteException e) {
Log.e(TAG, "setActivityController: " + e.getMessage());
e.printStackTrace();
}
} }
@Override @Override
@@ -1143,18 +1156,18 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
@Override @Override
public void getEbagCodeFinish(boolean activation) { public void getEbagCodeFinish(boolean activation) {
if (activation){ if (activation) {
mPresenter.getExclusiveAdminApp(); mPresenter.getExclusiveAdminApp();
Log.e(TAG, "getEBagCodeFinish: "+"已激活" ); Log.e(TAG, "getEBagCodeFinish: " + "已激活");
}else { } else {
mPresenter.getWiFiPasswd(); mPresenter.getWiFiPasswd();
Log.e(TAG, "getEBagCodeFinish: "+"未激活" ); Log.e(TAG, "getEBagCodeFinish: " + "未激活");
} }
} }
@Override @Override
public void getExclusiveAdminAppFinish() { public void getExclusiveAdminAppFinish() {
Log.e(TAG, "getAdminAppFinish: " ); Log.e(TAG, "getAdminAppFinish: ");
mPresenter.getWiFiPasswd(); mPresenter.getWiFiPasswd();
} }

View File

@@ -755,14 +755,17 @@ public class ApkUtils {
// this.add("com.shoufei.aole"); // 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.appstore");
this.add("com.aoleyun.sn"); this.add("com.aoleyun.sn");
this.add("com.aoleyun.info"); this.add("com.aoleyun.info");
this.add("com.aoleyun.os"); this.add("com.aoleyun.os");
this.add("com.aoleyun.browser"); this.add("com.aoleyun.browser");
this.add("com.aoleyun.browser");
this.add("com.uiui.filecloud"); this.add("com.uiui.filecloud");
this.add("com.gl.dwlauncher");
this.add("com.qunyu.dividedroad");
this.add("com.ygyb.yischool");
}}; }};
//出厂自带的app //出厂自带的app

View File

@@ -11,6 +11,7 @@ import android.content.Context;
import android.content.ContextWrapper; import android.content.ContextWrapper;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
@@ -23,6 +24,7 @@ import android.net.Uri;
import android.os.BatteryManager; import android.os.BatteryManager;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.os.IBinder;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.Process; import android.os.Process;
import android.os.RemoteException; import android.os.RemoteException;
@@ -67,6 +69,7 @@ import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix; import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter; import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.kte.interfacesettings.aidl.ITools;
import com.tencent.mmkv.MMKV; import com.tencent.mmkv.MMKV;
import java.io.File; import java.io.File;
@@ -128,6 +131,8 @@ public class JGYUtils {
public static final int AH6016Platform = 9; public static final int AH6016Platform = 9;
public static final int ZR6016Platform = 10; public static final int ZR6016Platform = 10;
public static final int HRAD13Platform = 11; public static final int HRAD13Platform = 11;
public static final int Teclast8183Platform = 12;
public static final int C2Platform = 13;
public static final String Other = "其他"; public static final String Other = "其他";
@@ -139,6 +144,8 @@ public class JGYUtils {
public static final String AH6016Tag = "AH6016"; public static final String AH6016Tag = "AH6016";
public static final String ZR6016Tag = "ZR6016"; public static final String ZR6016Tag = "ZR6016";
public static final String HRAD13Tag = "HRAD13"; public static final String HRAD13Tag = "HRAD13";
public static final String Teclast8183Tag = "teclast8183";
public static final String C2Tag = "MTK8183";
private CacheHelper cacheHelper; private CacheHelper cacheHelper;
@@ -155,6 +162,28 @@ public class JGYUtils {
this.crv = context.getContentResolver(); this.crv = context.getContentResolver();
this.cacheHelper = new CacheHelper(context); this.cacheHelper = new CacheHelper(context);
initConnectedTimeCache(); 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) { public static void init(Context context) {
@@ -173,6 +202,20 @@ public class JGYUtils {
public static native String getAuthorization(); 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) { public int checkSNPlatform(String sn) {
if (TextUtils.isEmpty(sn)) return UnknowPlatform; if (TextUtils.isEmpty(sn)) return UnknowPlatform;
String secondChars = sn.substring(1, 2); String secondChars = sn.substring(1, 2);
@@ -212,10 +255,14 @@ public class JGYUtils {
} else if (HRAD13Tag.equalsIgnoreCase(platform)) { } else if (HRAD13Tag.equalsIgnoreCase(platform)) {
Log.i(TAG, "checkAppPlatform: " + "HRAD13"); Log.i(TAG, "checkAppPlatform: " + "HRAD13");
return HRAD13Platform; return HRAD13Platform;
} else if (C2Tag.equalsIgnoreCase(platform)) {
Log.i(TAG, "checkAppPlatform: " + "C2");
return C2Platform;
} else { } else {
Log.i(TAG, "checkAppPlatform: " + "没有数据"); Log.i(TAG, "checkAppPlatform: " + "没有数据");
return UnknowPlatform; return UnknowPlatform;
} }
} }
public boolean isSamePlatform(String platform) { public boolean isSamePlatform(String platform) {
@@ -249,6 +296,8 @@ public class JGYUtils {
getAppPlatformCallback.AppPlatform(ZR6016Platform); getAppPlatformCallback.AppPlatform(ZR6016Platform);
} else if (HRAD13Tag.equalsIgnoreCase(platform)) { } else if (HRAD13Tag.equalsIgnoreCase(platform)) {
getAppPlatformCallback.AppPlatform(HRAD13Platform); getAppPlatformCallback.AppPlatform(HRAD13Platform);
} else if (C2Tag.equalsIgnoreCase(platform)) {
getAppPlatformCallback.AppPlatform(C2Platform);
} else { } else {
getAppPlatformCallback.AppPlatform(UnknowPlatform); getAppPlatformCallback.AppPlatform(UnknowPlatform);
} }
@@ -272,7 +321,9 @@ public class JGYUtils {
return ZR6016Tag; return ZR6016Tag;
} else if (HRAD13Tag.equalsIgnoreCase(platform)) { } else if (HRAD13Tag.equalsIgnoreCase(platform)) {
return HRAD13Tag; return HRAD13Tag;
} else { } else if (C2Tag.equalsIgnoreCase(platform)) {
return C2Tag;
}else {
return Other; return Other;
} }
} }
@@ -1164,6 +1215,8 @@ public class JGYUtils {
String aole_app_forbid = String.join(",", pkgSet); String aole_app_forbid = String.join(",", pkgSet);
Log.e(TAG, "writeAppPackageList: " + aole_app_forbid); Log.e(TAG, "writeAppPackageList: " + aole_app_forbid);
boolean b = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_FORBID, 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)); 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.AH6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZR6016Platform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZR6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.HRAD13Platform || 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.DEVELOPMENT_SETTINGS_ENABLED, state == 1 ? 0 : 1);
Settings.Global.putInt(crv, Settings.Global.ADB_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 Launcher3 = "com.android.launcher3";
private String Launcher3Class = "com.android.launcher3.Launcher"; 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) { public void setDefaultLauncher(Context context, String defPackageName, String defClassName) {
try { try {
if (!TextUtils.isEmpty(defPackageName) && !TextUtils.isEmpty(defClassName)) { if (!TextUtils.isEmpty(defPackageName) && !TextUtils.isEmpty(defClassName)) {
@@ -2171,8 +2228,12 @@ public class JGYUtils {
} }
private void openLauncher3() { private void openLauncher3() {
setDefaultDesktop(Launcher3, Launcher3Class);
// ApkUtils.openPackage(mContext, Launcher3); // ApkUtils.openPackage(mContext, Launcher3);
if ("C2".equals(Build.MODEL)){
setDefaultDesktop(AoleyunOs, AoleyunOsClass);
}else {
setDefaultDesktop(Launcher3, Launcher3Class);
}
} }
public String getStartClassName(String pkg) { public String getStartClassName(String pkg) {
@@ -2242,6 +2303,8 @@ public class JGYUtils {
Log.e(TAG, "setDefaultDesktop: " + pkg + ":" + className); 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.pkgname = " + SystemProperties.get("persist.sys.launcher.pkgname"));
Log.e(TAG, "setDefaultDesktop: " + "persist.sys.launcher.classname = " + SystemProperties.get("persist.sys.launcher.classname")); Log.e(TAG, "setDefaultDesktop: " + "persist.sys.launcher.classname = " + SystemProperties.get("persist.sys.launcher.classname"));
setDefaultLauncher(new ComponentName(pkg, className));
} }
public String getMacJson(Context context) { 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 PACKAGE_DEVICEINFO = "com.aoleyun.sn";
public static final String CLASS_DEVICEINFO = "com.aoleyun.sn.receiver.BootReceiver"; 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.zyappstore");
this.add("com.teclast.zy"); 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()); 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); 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); Log.e(TAG, "aole_sdcard_forbid_on:" + aole_sdcard_forbid_on);
} catch (Exception e) { } catch (Exception e) {
@@ -215,12 +216,15 @@ public class SysSettingUtils {
default: default:
case "usb_charge": case "usb_charge":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_CHARGE; usbStatus = CommonConfig.AOLE_ACTION_USB_USB_CHARGE;
JGYUtils.getInstance().setMtpEnable(false);
break; break;
case "usb_mtp": case "usb_mtp":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MTP; usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MTP;
JGYUtils.getInstance().setMtpEnable(true);
break; break;
case "usb_midi": case "usb_midi":
usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MIDI; usbStatus = CommonConfig.AOLE_ACTION_USB_USB_MIDI;
JGYUtils.getInstance().setMtpEnable(false);
break; break;
} }
Intent usbIntent = new Intent(usbStatus); Intent usbIntent = new Intent(usbStatus);
@@ -232,6 +236,7 @@ public class SysSettingUtils {
context.sendBroadcast(usbIntent); context.sendBroadcast(usbIntent);
} }
} }
} }
private static void setBluetooth(Context context, int state) { private static void setBluetooth(Context context, int state) {
@@ -295,6 +300,7 @@ public class SysSettingUtils {
//设置关闭时关闭蓝牙 //设置关闭时关闭蓝牙
} }
} }
JGYUtils.getInstance().setBluetoothEnable(setting_bht == 1);
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "setBluetooth: " + e.getMessage()); Log.e(TAG, "setBluetooth: " + e.getMessage());
} }
@@ -401,22 +407,22 @@ public class SysSettingUtils {
int setting_statusbar = changeNum(jsonObject.get("setting_statusbar").getAsInt()); int setting_statusbar = changeNum(jsonObject.get("setting_statusbar").getAsInt());
// int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0); // int oldNum = Settings.System.getInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 0);
// if (oldNum != setting_statusbar) { // if (oldNum != setting_statusbar) {
//写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示 //写入到系统不涉及任何管控,因为之前调用会频繁隐藏显示
boolean aole_hide_statusBar = Settings.System.putInt(context.getContentResolver(), CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR, 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); Log.e(TAG, "aole_hide_statusBar: " + aole_hide_statusBar);
String statusbarStatus = ""; String statusbarStatus = "";
switch (setting_statusbar) { switch (setting_statusbar) {
case 0: case 0:
statusbarStatus = CommonConfig.AOLE_ACTION_SHOW_STATUS_BAR; statusbarStatus = CommonConfig.AOLE_ACTION_SHOW_STATUS_BAR;
break; break;
case 1: case 1:
statusbarStatus = CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR; statusbarStatus = CommonConfig.AOLE_ACTION_HIDE_STATUS_BAR;
break; break;
default: default:
} }
Intent statusIntent = new Intent(statusbarStatus); Intent statusIntent = new Intent(statusbarStatus);
// Intent statusIntent = new Intent(statusbarStatus).setPackage("com.android.systemui"); // 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"); Intent cameraIntent = new Intent(cameraStatus).setPackage("com.android.settings");
context.sendBroadcast(cameraIntent); context.sendBroadcast(cameraIntent);
JGYUtils.getInstance().setCameraEnable(setting_camera == 1);
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "setCamera: " + e.getMessage()); Log.e(TAG, "setCamera: " + e.getMessage());
} }

View File

@@ -96,6 +96,12 @@ public class TimeUtils {
return sdf.format(date); 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) { private static long getLoopTime(String timestamp) {
//"15:34:39" //"15:34:39"
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 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.AH6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZR6016Platform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.ZR6016Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.HRAD13Platform || JGYUtils.getInstance().checkAppPlatform() == JGYUtils.HRAD13Platform
|| JGYUtils.getInstance().checkAppPlatform() == JGYUtils.C2Platform
) { ) {
return Utils.getProperty("ro.build.display.id", "获取失败"); return Utils.getProperty("ro.build.display.id", "获取失败");
} else { } 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_constraintStart_toEndOf="@+id/iv_back"
app:layout_constraintTop_toTopOf="parent" /> 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>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -94,8 +68,8 @@
<ImageView <ImageView
android:id="@+id/iv_head" android:id="@+id/iv_head"
android:layout_width="@dimen/dp_40" android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_40" android:layout_height="@dimen/dp_60"
android:layout_marginStart="@dimen/dp_20" android:layout_marginStart="@dimen/dp_20"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerInside" android:scaleType="centerInside"
@@ -124,192 +98,66 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <ImageView
android:id="@+id/tv_phone" android:id="@+id/iv_active_state"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_53"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_16"
android:text="--" android:layout_marginTop="@dimen/dp_8"
android:textColor="@color/text_gray" android:adjustViewBounds="true"
android:textSize="@dimen/sp_10" android:scaleType="centerCrop"
android:visibility="gone" android:src="@drawable/icon_inactivated"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="@+id/tv_name"
app:layout_constraintTop_toBottomOf="@+id/tv_name" /> app:layout_constraintTop_toBottomOf="@+id/tv_name" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginEnd="@dimen/dp_16" android:paddingStart="@dimen/dp_16"
android:gravity="center" android:paddingEnd="@dimen/dp_16"
android:maxWidth="@dimen/dp_210"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <TextView
android:id="@+id/constraintLayout5" android:id="@+id/tv_activation_time"
android:layout_width="@dimen/dp_40" android:layout_width="wrap_content"
android:layout_height="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_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" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout <ImageView
android:id="@+id/cl_student" android:id="@+id/iv_update"
android:layout_width="@dimen/dp_40" 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_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_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintStart_toStartOf="parent" />
<TextView </androidx.constraintlayout.widget.ConstraintLayout>
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_height="match_parent"
android:layout_weight="1"> android:layout_weight="1">
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/imageView3" android:layout_width="wrap_content"
android:layout_width="@dimen/dp_32" android:layout_height="wrap_content"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_battery"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintVertical_bias="0.3" />
<TextView <ImageView
android:id="@+id/tv_battery" android:id="@+id/imageView3"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_36"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_36"
android:text="电池" android:adjustViewBounds="true"
android:textColor="@color/black" android:scaleType="centerInside"
android:textSize="@dimen/sp_10" android:src="@drawable/icon_batch"
app:layout_constraintEnd_toEndOf="@+id/imageView3" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/imageView3" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView3" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/tv_voltage" android:id="@+id/textView11"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="电压" android:layout_marginTop="@dimen/dp_8"
android:textColor="@color/text_gray" android:text="设备批次"
android:textSize="@dimen/sp_10" android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="@+id/imageView3" android:textSize="@dimen/sp_10"
app:layout_constraintStart_toStartOf="@+id/imageView3" app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/tv_battery" /> 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>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -441,41 +298,51 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1"> android:layout_weight="1">
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/iv_wifi" android:layout_width="wrap_content"
android:layout_width="@dimen/dp_32" android:layout_height="wrap_content"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_wifi"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintVertical_bias="0.3" />
<TextView <ImageView
android:id="@+id/tv_wifi" android:id="@+id/imageView4"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_36"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_36"
android:text="WiFi" android:adjustViewBounds="true"
android:textColor="@color/black" android:scaleType="centerInside"
android:textSize="@dimen/sp_10" android:src="@drawable/icon_student_id"
app:layout_constraintEnd_toEndOf="@+id/iv_wifi" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/iv_wifi" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintTop_toBottomOf="@+id/iv_wifi" /> 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>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -483,41 +350,50 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1"> android:layout_weight="1">
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/iv_ip" android:layout_width="wrap_content"
android:layout_width="@dimen/dp_32" android:layout_height="wrap_content"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_ipaddress"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintVertical_bias="0.3" />
<TextView <ImageView
android:id="@+id/tv_ip" android:id="@+id/imageView5"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_36"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_36"
android:text="内网" android:adjustViewBounds="true"
android:textColor="@color/black" android:scaleType="centerInside"
android:textSize="@dimen/sp_10" android:src="@drawable/icon_class"
app:layout_constraintEnd_toEndOf="@+id/iv_ip" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/iv_ip" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintTop_toBottomOf="@+id/iv_ip" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/tv_public_ip" android:id="@+id/textView9"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="外网" android:text="设备班级"
android:textColor="@color/text_gray" android:textColor="@color/black"
android:textSize="@dimen/sp_10" android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_ip" app:layout_constraintEnd_toEndOf="@+id/imageView5"
app:layout_constraintStart_toStartOf="@+id/iv_ip" app:layout_constraintStart_toStartOf="@+id/imageView5"
app:layout_constraintTop_toBottomOf="@+id/tv_ip" /> 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> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
@@ -694,15 +570,6 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="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> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
@@ -749,16 +616,28 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_bind_statu"> 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 <ImageView
android:id="@+id/iv_qrcode" android:id="@+id/iv_qrcode"
android:layout_width="@dimen/dp_88" android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_88" android:layout_height="@dimen/dp_88"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_48"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView

View File

@@ -42,32 +42,6 @@
app:layout_constraintStart_toEndOf="@+id/iv_back" app:layout_constraintStart_toEndOf="@+id/iv_back"
app:layout_constraintTop_toTopOf="parent" /> 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>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -94,8 +68,8 @@
<ImageView <ImageView
android:id="@+id/iv_head" android:id="@+id/iv_head"
android:layout_width="@dimen/dp_40" android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_40" android:layout_height="@dimen/dp_60"
android:layout_marginStart="@dimen/dp_20" android:layout_marginStart="@dimen/dp_20"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerInside" android:scaleType="centerInside"
@@ -124,192 +98,66 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <ImageView
android:id="@+id/tv_phone" android:id="@+id/iv_active_state"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_53"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_16"
android:text="--" android:layout_marginTop="@dimen/dp_8"
android:textColor="@color/text_gray" android:adjustViewBounds="true"
android:textSize="@dimen/sp_10" android:scaleType="centerCrop"
android:visibility="gone" android:src="@drawable/icon_inactivated"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="@+id/tv_name"
app:layout_constraintTop_toBottomOf="@+id/tv_name" /> app:layout_constraintTop_toBottomOf="@+id/tv_name" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginEnd="@dimen/dp_16" android:paddingStart="@dimen/dp_16"
android:gravity="center" android:paddingEnd="@dimen/dp_16"
android:maxWidth="@dimen/dp_210"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <TextView
android:id="@+id/constraintLayout5" android:id="@+id/tv_activation_time"
android:layout_width="@dimen/dp_40" android:layout_width="wrap_content"
android:layout_height="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_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" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout <ImageView
android:id="@+id/cl_student" android:id="@+id/iv_update"
android:layout_width="@dimen/dp_40" 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_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_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintStart_toStartOf="parent" />
<TextView </androidx.constraintlayout.widget.ConstraintLayout>
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_height="match_parent"
android:layout_weight="1"> android:layout_weight="1">
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/imageView3" android:layout_width="wrap_content"
android:layout_width="@dimen/dp_32" android:layout_height="wrap_content"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_battery"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintVertical_bias="0.3" />
<TextView <ImageView
android:id="@+id/tv_battery" android:id="@+id/imageView3"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_36"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_36"
android:text="电池" android:adjustViewBounds="true"
android:textColor="@color/black" android:scaleType="centerInside"
android:textSize="@dimen/sp_10" android:src="@drawable/icon_batch"
app:layout_constraintEnd_toEndOf="@+id/imageView3" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/imageView3" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView3" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/tv_voltage" android:id="@+id/textView11"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="电压" android:layout_marginTop="@dimen/dp_8"
android:textColor="@color/text_gray" android:text="设备批次"
android:textSize="@dimen/sp_10" android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="@+id/imageView3" android:textSize="@dimen/sp_10"
app:layout_constraintStart_toStartOf="@+id/imageView3" app:layout_constraintEnd_toEndOf="@+id/imageView3"
app:layout_constraintTop_toBottomOf="@+id/tv_battery" /> 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>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -441,41 +298,51 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1"> android:layout_weight="1">
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/iv_wifi" android:layout_width="wrap_content"
android:layout_width="@dimen/dp_32" android:layout_height="wrap_content"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_wifi"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintVertical_bias="0.3" />
<TextView <ImageView
android:id="@+id/tv_wifi" android:id="@+id/imageView4"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_36"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_36"
android:text="WiFi" android:adjustViewBounds="true"
android:textColor="@color/black" android:scaleType="centerInside"
android:textSize="@dimen/sp_10" android:src="@drawable/icon_student_id"
app:layout_constraintEnd_toEndOf="@+id/iv_wifi" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/iv_wifi" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintTop_toBottomOf="@+id/iv_wifi" /> 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>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@@ -483,41 +350,50 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1"> android:layout_weight="1">
<ImageView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/iv_ip" android:layout_width="wrap_content"
android:layout_width="@dimen/dp_32" android:layout_height="wrap_content"
android:layout_height="@dimen/dp_32"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/icon_ipaddress"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintVertical_bias="0.3" />
<TextView <ImageView
android:id="@+id/tv_ip" android:id="@+id/imageView5"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_36"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_36"
android:text="内网" android:adjustViewBounds="true"
android:textColor="@color/black" android:scaleType="centerInside"
android:textSize="@dimen/sp_10" android:src="@drawable/icon_class"
app:layout_constraintEnd_toEndOf="@+id/iv_ip" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/iv_ip" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintTop_toBottomOf="@+id/iv_ip" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/tv_public_ip" android:id="@+id/textView9"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="外网" android:text="设备班级"
android:textColor="@color/text_gray" android:textColor="@color/black"
android:textSize="@dimen/sp_10" android:textSize="@dimen/sp_10"
app:layout_constraintEnd_toEndOf="@+id/iv_ip" app:layout_constraintEnd_toEndOf="@+id/imageView5"
app:layout_constraintStart_toStartOf="@+id/iv_ip" app:layout_constraintStart_toStartOf="@+id/imageView5"
app:layout_constraintTop_toBottomOf="@+id/tv_ip" /> 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> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
@@ -694,15 +570,6 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="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> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
@@ -752,11 +619,11 @@
<ImageView <ImageView
android:layout_width="@dimen/dp_88" android:layout_width="@dimen/dp_88"
android:layout_height="@dimen/dp_88" android:layout_height="@dimen/dp_88"
android:src="@drawable/aoleyun_qrcode"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_48"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:layout_marginStart="@dimen/dp_48" android:src="@drawable/aoleyun_qrcode"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@@ -764,9 +631,9 @@
<ImageView <ImageView
android:id="@+id/iv_qrcode" android:id="@+id/iv_qrcode"
android:layout_width="@dimen/dp_88" android:layout_width="@dimen/dp_88"
android:layout_marginEnd="@dimen/dp_48"
android:layout_height="@dimen/dp_88" android:layout_height="@dimen/dp_88"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_48"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent" 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="trial_time">体验卡:剩余%d天 激活成为正式版</string>
<string name="enter_activation_code">输入激活码</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="scan_code_to_register">扫码注册小程序</string>
<string name="not_set">未设置</string> <string name="not_set">未设置</string>
<string name="unknown">unknown</string> <string name="unknown">unknown</string>
@@ -46,7 +46,6 @@
<string name="scan_applet_qrcode">小程序扫码绑定设备</string> <string name="scan_applet_qrcode">小程序扫码绑定设备</string>
<string-array name="packageName"> <string-array name="packageName">
<item>http://p18.qhimg.com/dr/72__/t0111cb71dabfd83b21.png</item> <item>http://p18.qhimg.com/dr/72__/t0111cb71dabfd83b21.png</item>
<item>http://p18.qhimg.com/dr/72__/t01a16bcd9acd07d029.png</item> <item>http://p18.qhimg.com/dr/72__/t01a16bcd9acd07d029.png</item>