# OpenMtaSDKX
**Repository Path**: appxsupport/OpenMtaSDKX
## Basic Information
- **Project Name**: OpenMtaSDKX
- **Description**: OpenMtaSDKX开源统计库,适配AndroidX。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-10-20
- **Last Updated**: 2025-10-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: SDK
## README
# [OpenMtaSDK/开放统计库](https://bitbucket.org/smallgoals/openmtasdk)
## 库使用步骤
### 引用说明:
To get a Git project into your build:
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
```
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```
Step 2. Add the dependency
```
dependencies {
compile 'org.bitbucket.smallgoals:openmtasdk:9.11.15'
}
```
### 调用说明:
#### 1.平台ID配置:
.\app\src\main\res\values\ad_string.xml
```
MtaDemo
5a2cff57f43e485c4a000123
mtademod_mix
5a2d00cf
com.android.MtaDemo.MainActivity
```
#### 2.继承调用:
.\app\src\main\java\com\android\MtaDemo\MainActivity.java
```java
public class MainActivity extends BaseAppCompatActivity {}
```
#### 2.1手动调用:
```java
public class MainActivity extends AppCompatActivity {
public Activity getActivity(){
return this;
}
protected Context context;
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
context = this;
BaseUtils.onCreate(this);
}
public void onBackPressed() {
BaseUtils.onBackPressed(this);
}
protected void onResume() {
super.onResume();
BaseUtils.onResume(this);
}
protected void onPause() {
super.onPause();
BaseUtils.onPause(this);
}
}
```
#### 3.常用方法介绍:
```java
public class MainActivity extends BaseAppCompatActivity {
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_rate) {//市场好评
if(!BaseUtils.hasGoodRate(getActivity())){
BaseUtils.popMyToast(getActivity(), "已经好评了或者好评开关已关!");
}
return true;
}else if(id == R.id.action_appinfo){//应用信息
MyTipDialog.popNilDialog(getActivity(), BaseUtils.getAppInfo(getActivity()));
return true;
}else if(id == R.id.action_crash){//异常捕获测试
Activity act = null;
act.runOnUiThread(null);
return true;
}else if(id == R.id.action_feedback){//反馈建议
BaseUtils.gotoFeedbackUI(getActivity());
return true;
}else if(id == R.id.action_update){//在线更新
BaseUtils.checkUpdate(getActivity());
return true;
}else if(id == R.id.action_feedback_v2){//在线反馈
// 启动反馈消息的接收,启动后台服务
FeedbackService.addNotification();
//清除全部通知,并暂停后台服务
FeedbackService.cleanNotification();
return true;
}
return super.onOptionsItemSelected(item);
}
}
```
## 混淆说明:
### 友盟统计分析-混淆:
```
-keep class com.umeng.** {*;}
-keepclassmembers class * {
public (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
```
### 腾讯统计分析-混淆:
```
-keep class com.tencent.stat.*{*;}
-keep class com.tencent.mid.*{*;}
```
### 讯飞统计分析-混淆:
```
-keep class com.iflytek.sunflower.**{*;}
```
### MTA混淆:
```
#【fastjson】
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.**{*; }
#【okhttp3】
-dontwarn com.squareup.**
-keep class com.squareup.** { *;}
-dontwarn okio.**
#【XMB需要Keep的】
-dontwarn org.apache.**
-keep class org.apache.** {*;}
-dontwarn android.net.**
-keep class android.net.**{*;}
-dontwarn org.conscrypt.**
-keep class org.conscrypt.**{*;}
-dontwarn com.cazaea.*
-keep class com.cazaea.**{*;}
-dontwarn com.umeng.*
-keep class com.umeng.** {*;}
-keepclassmembers class * {
public (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class com.tencent.stat.*{*;}
-keep class com.tencent.mid.*{*;}
-dontwarn com.iflytek.sunflower.*
-keep class com.iflytek.sunflower.**{*;}
#【反馈相关实体类-MTA9.6.3】
-dontwarn com.nil.sdk.ui.vo.*
-keep class com.nil.sdk.ui.vo.**{*;}
-dontwarn android.app.ui.FeedbackUI$FeedbackVo
-keep class android.app.ui.FeedbackUI$FeedbackVo{*;}
#【AliPay】
-dontwarn com.xmb.mta.util.*
-keep class com.xmb.mta.util.**{*;}
#【GDT】
-dontwarn com.qq.*
-keep class com.qq.**{*;}
-dontwarn com.android.vy.*
-keep class com.android.vy.**{*;}
#【OpenPaySDK】
-dontwarn com.xvx.sdk.payment.*
-keep class com.xvx.sdk.payment.**{*;}
```
### MTA资源白名单:
```
"R.string.t1_id",
"R.string.t2_id",
"R.string.t3_id",
"R.string.t4_id",
"R.string.t5_id",
"R.string.qq_id",
"R.string.fo_id",
"R.string.op_id",
"R.string.qh_id",
"R.string.xm_id",
"R.string.vo_id",
"R.string.hw_id",
"R.string.al_id",
"R.string.ym_id",
"R.string.xf_id",
"R.string.wp_id",
"R.string.dl_id",
"R.string.az_id",
"R.string.gg_id",
"R.string.du_id",
"R.string.fb_id",
"R.string.cb_id",
"R.string.vg_id",
"R.string.im_id",
"R.string.jz_id",
"R.string.dyd_id",
"R.string.qm_id",
"R.string.kg_id",
"R.string.mix_id",
"R.string.other_id",
"R.string.e1_id",
"R.string.e2_id",
"R.string.e3_id",
"R.string.e4_id",
"R.string.e5_id",
"R.string.end_id",
"R.string.rate_text",
"R.string.notice_text",
"R.string.min_points",
"R.string.point_text",
"R.string.tieba_url",
"R.string.dialog_private",
"R.string.site_list",
"R.string.kw_list",
"R.string.update_url",
"R.string.zc_urls",
"R.string.um_key",
"R.string.ta_key",
"R.string.xf_key",
"R.string.yk_key",
"R.string.zfb_key",
"R.string.wx_key",
"R.string.qq_key",
"R.string.pay_key",
"R.string.xmb_key",
"R.string.nb_web",
"R.string.all_web",
"R.string.iqiyi_web",
"R.string.youku_web",
"R.string.gap_days",
"R.string.release_date",
"R.string.ver_sp",
"R.string.offline",
"R.string.fb_period",
"R.string.c1",
"R.string.c2",
"R.string.c3",
"R.string.c4",
"R.string.c5",
"R.string.c6",
"R.string.c7",
"R.string.c8",
"R.string.c9",
"R.string.c10",
"R.string.all",
"R.string.nb_m3u8",
"R.string.all_m3u8",
"R.string.iqiyi_m3u8",
"R.string.youku_m3u8",
"R.string.exit_rate",
"R.string.o1",
"R.string.o2",
"R.string.o3",
"R.string.o4",
"R.string.o5",
"R.string.o6",
"R.string.o7",
"R.string.o8",
"R.string.o9",
"R.string.o10",
"R.string.open_url",
"R.string.download_url",
"R.string.zfb_url",
"R.string.mta_url",
"R.string.ser_url",
"R.string.data_url",
"R.string.api_url",
"R.string.app_email",
"R.string.app_firm",
"R.string.app_name",
"R.string.app_date",
"R.string.agency_key",
"R.string.xmb_app_id",
"R.string.app_id",
"R.string.alipay_app_id",
"R.string.kf_tel",
"R.string.kf_qq",
"R.string.kf_wx",
"R.string.kf_email",
"R.string.kf_name",
"R.string.kp_gap_second",
"R.string.cp_gap_second",
"R.string.hf_gap_second",
"R.string.end",
```
## 仓库地址
```
https://jitpack.io/#org.bitbucket.smallgoals/openmtasdk/
```
## 更新日志:
### 2.1.5
- 集成友盟、讯飞官方统计SDK;
- 调用案例见app
- 去除库的android:icon="@android:drawable/sym_def_app_icon"配置
- 尝试强制覆盖标签2.1.5
### 2.1.6
- 编写说明文档,添加部分关键代码注释
- Markdown文件首次编写
- 添加图片分享工具方法
### 8.1.29
- 添加账号信息正规验证工具类
- 添加反馈界面支持回调(兼容老反馈弹出对话框方式)
### 8.1.30
- AppCompatActivity支持一键添加返回按钮
- 反馈界面部分调整
### 8.5.10
- 去除部分手机信息获取代码
- 优化反馈界面,支持自定义
- 添加json、okhttp、utilcode工具库
### 8.5.11
- 去除部分手机信息获取代码
- 优化反馈界面,支持自定义
- 添加json、okhttp、utilcode工具库
- 修改反馈联系方式错误提示
### 8.8.21
- 添加Web浏览器的工具类
- 异常捕获时,添加Log.error日志
- 添加启动时的隐私协议界面或手动隐私协议对话框
- 华为渠道默认不开插屏
- 优化XMB数据展示
### 8.8.22
- 添加用户隐私政策工具类
- 支持友盟渠道和包名在线参数,如:openmtasdk_qq_id和com.x.y_qq_id
- 支持友盟在线参数开关alls_close和alls_open,多渠道全关和全开
### 8.8.23
- 优化反馈主题无Actionbar时崩溃
- AppCompatActivity添加去除阴影、全屏、隐藏Actionbar、禁止截屏方法
- BaseUtils添加Log对话框的一键弹出
- 版本号和版本名称配置至gradle.properties,方便多处共用
- gradle.properties|Mtas.java|ad_string.xml存储版本信息
### 8.8.24
- 修复部分bug
### 8.9.11
- String工具类添加部分字符处理方法
- 添加口令红包一键复制
### 8.9.18
- 反馈界面支持定制标题
- 发布日期和编译日期默认取大的
- App采集方法优化
- CrashApp异常捕获支持init(*)进行初始化
- 添加打开网页接口
- 添加下载文件接口
- 添加每日领红包
- 隐私政策界面默认随启动界面开启
### 8.9.22
- Agentweb支持文件下载
- 隐私界面支持应用名称、邮箱、日期、公司在线配置
- 修复上版本下载地址单词拼错的bug
- 优化启动界面的延时处理
- Demo添加一键打包代码
### 8.9.25
- 紧急修复反馈界面IP配置[9.11及以上版本异常]
- 吱口令默认需要配置口令值才开启一键复制
### 8.11.1
- 支持在Xml中配置(代理名称)和(app_id)
- IP修改为https域名https://mtaapi.com
- 添加大数据Get分段方式上报方式
- 优化友盟在线参数获取逻辑
- 添加ACache缓存工具类
### 8.11.8
- 添加org.apache.http.legacy.jar,兼容Android P手机
- 优化广告和参数开关,支持Sp缓存手动开关
- 修复开屏初始化失败时的方法递归调用造成的内存溢出
- 优化异常日志上报和事件发送机制
### 8.11.30
- 修复Android 4.4访问Https异常
- 优化启动界面逻辑
### 9.1.4
- 添加App前后台切换监听,适用于重回App时的弹开屏广告
- 优化日志管理,添加Open、Close、Debug渠道才有日志输出
- 添加调试弹窗:BaseUtils.popDebugToast("消息内容");
- 添加反馈时记录CombinedID;
### 9.5.10
- OpenMtaSDK.build.gradle:compileSdkVersion从27更新至28
- 添加在线实时反馈功能,添加后台服务定时获取反馈列表,便于实时沟通
- 添加SoftKeyBoardListener软键盘监听工具类
- 添加ImgUtil图片工具类
- 优化MobileInfoUtil类中的IMEI和MAC信息的获取
### 9.5.11
- 删除Android-SpinKit动画库,否则JitPack打包失败
### 9.5.20
- 优化通知消息部分bug,兼容tag至28
### 9.6.3
- 关闭FileUriExposure检测
- 添加权限检测和获取工具类
- 修复程序崩溃时的反馈消息循环获取时URL_TEST为空的异常
### 9.7.5
- 更新友盟、讯飞、腾讯分析至最新SDK
- 去除界面中的资源反射代码
- md文件中添加混淆和资源白名单说明
- 部分Gson实体类已添加Keep注解
- 规范命名,添加前缀"xmta_"
### 9.7.18
- 移除“ic_launcher.png”,不再出现应用图标覆盖的问题;
- 移除多余的无关TODO标签;
- 移除库清单中多余的振动权限;
### 9.7.19
- 更新APP隐私政策,可以使用string的array来自定义或者拓展EL表达式的内容,若要拓展:在main项目string.xml覆盖agreement_el_key和agreement_el_value即可;
### 9.7.29
- 启动流程变动,现在是:1.展示隐私政策;2.授权;3.开屏/进入MainActivity;
- WelComeActivity已经加入MTA库中,在APP清单里设置为启动Activity即可;
- 相关配置见:xmat_permission_string.xml;
- 使用方法:
1. 升级MTA;
2. 如果需要,修改覆盖assets里的“agreement.html”文件;
3. 修改覆盖“xmat_permission_string.xml”文件;
4. 在清单文件里把WelComeActivity设置为启动Activity;
### 9.8.2
- 去除fastjson库的引用;
- WelComeActivity添加next()接口,方便子类覆写;
- 添加@string/test_qq_id的GDT测试ID;
### 9.8.20【已删除】
- 移除讯飞统计分析相关代码和架包;
- 清单文件中只留下必要的权限申明,添加腾讯MTA和Gdt相关provider配置;
- demo中更新GDT至940,测试通过,开屏有部分API变动;
- 添加缓存清理接口:BaseUtils.clearAllCache();
- 获取设备IMEI为空时,生成一个UUID取代之;
- 友盟统计、腾讯统计、在线参数初始化前进行权限判断;
1. AppUtils.hasUmMTAPermission(ctx);
2. AppUtils.hasQQMTAPermission(ctx);
3. AppUtils.hasXmbMTAPermission(ctx);
- 重大更新-XMB在线参数:
1. string.xml中添加xmb_key作为app_key(xmb_key为空时取um_key);
2. 在线参数后台,xmb_cache_time键名存储缓存时间,不设置默认2小时;
3. XmbOnlineConfigAgent.updateOnlineConfig(); 手动更新Xmb在线参数;
4. getConfigParams(String key); 通过键名获取在线参数值;
### 9.8.28【无XMB加密库】
- 修复上版本权限问题导致GDT广告显示异常的bug;
- 优化XMB在线参数逻辑并添加测试Demo,基本稳定;
- 优化ACacheUtils逻辑,没存储权限只缓存在App内部缓存;
- 删除9.8.20问题标签;
1. 删除本地标签:在版本Log中的commit记录右键[TAG '9.8.20']选择Delete;
2. 删除远程标签:git push origin :refs/tags/9.8.20;
### 9.9.4【已删除】
- 开始添加XMB加密库,以拷贝so和源码方式,aar方式app引用成功而远程引用失败;
- Application中进行签包验证,并对部分敏感数据进行字符加密处理;
- MtaSDK中的大部分库引用方式由implementation更改为api方式;
### 9.9.5【已删除】
- 在WelcomeActivity的onCreate中进行在线参数的拉取,优化参数获取效率;
- 添加com.android.vy.XSEUtils,兼容以前aar方式的加密库调用;
- 更改app_file_path.xml,添加Gdt950的缓存目录;
- 删除9.9.4本地和远程标签;
### 9.9.11【已删除】
- Cjs中修改app_id为app_type,存储应用类型;
- ValidatorUtil中修复中文正规验证失效的bug;
- NbDataUtils中添加Type类型的序列化;
- 删除9.9.5本地和远程标签;
### 9.9.18
- Cjs中app_id和app_type同时保留,存储应用类型;
- Cjs添加部分登录和用户信息的键名,方便跨SDK存取;
### 9.9.20【卡顿】
- com.nil.sdk.utils.DateUtils.getOffectDay优化日期相减算法;
### 9.9.26【8.0崩溃】
- AdSwitchUtils.initAdInfo()有点耗时,放入线程中执行;
- 添加android:usesCleartextTraffic="true",支持明文传输;
### 9.10.24【8.0崩溃】
- 根据安管部门需求,(用户协议)与(隐私政策)需分别显示提醒
- 用户协议:user_agreement.html;隐私政策:privacy_policy.html
### 9.10.31【8.0崩溃】
- 修改用户协议和隐私政策html内部标题;
### 9.11.4
- DoubleAgreementActivity清单中去除android:screenOrientation配置;
### 9.11.15 【强制申请权限】
- 更新友盟统计库至8.0.0,基础库至2.0.0;
- 更新com.blankj:utilcode库至1.25.9;
- 更新BaseRecyclerViewAdapterHelper库至2.9.45;
- 支持退出好评(默认关闭,使用erate_open开启);
### 20.11.20 【Mta和Pay库合一】
- 腾讯移动统计已下线,则移除之;
- 友盟在线参数功能已移入common移动统计SDK,老Jar已删除;
- 双协议同意的BUG,取消强制申请权限;
- 拷贝PaySDK进行整合在一起;
- 库清单文件只保留网络,其它权限均删除;
- 关闭库多余的日志输出;
### 20.11.21
- GDT无权限时广告正常展示;
- 获取Mac、Phone方法进行权限+隐私确定判断;
### 20.12.12
- 友盟、GDT权限抽取到xml中,方便自定义配置;
- WelcomeActivity添加拒绝权限直接进入按钮;
- 优化网络状态检测NetworkUtils.isNetworkAvailable方法;
### 20.12.15
- 更新友盟至9.3.3;
- 更新privacy_policy.html文件;
- 整合OpenMtaSDKX和OpenPaySDKX库;
### 21.1.20
- 修复Webview明文存储密码风险和同源策略绕过漏洞;
- 添加权限申请工具类;
### 21.2.25/21.2.26
- 登录信息:APP内部缓存-->APP内部File;
- 订单信息:SD卡-->APP内部File;
- ACacheUtils添加APP内部File存储操作方法;
- 查询会员状态,默认以用户方式判断ViP;
- 修复AppUtils.hasPermission报Context为空的bug;
- 清单文件中修改:FileProvider-->GDTFileProvider;
- 添加自动更新AutoUpdateUtil和分享ShareAPP2FriendUtil工具类;
- 登录界面,添加“忘记密码”功能;
- 添加在线参数rate_percent配置百分比概率进行好评功能;
- 添加友盟U-APM,重新集成崩溃捕获SDK;
### 21.3.25
- 修复未同意协议也弹开屏、插屏的bug;
- 关闭onResume中横幅频繁刷新加载;
- 移除Webview风险代码;
- 添加用户注销功能;
- 更新友盟至9.3.7;
- 忘记密码、账号注销添加下划线;
- 去除READ_PHONE_STATE权限;
### 21.5.7
- 更新UMSDK至9.3.8;
- 更新GDT至1203;
- 修复UMCrash: context not instanceof application;
- 更新OpenMtaSDK\build.gradle中远程同步仓库;
### 21.6.8
- 支付宝AAR方式引用有问题,改用解压拆分Jar形式(15.8.03.20210428);
- GDT二次确认弹窗默认开启,需要关闭时添加vivo@@gdt2_close##(注:debug/open渠道始终有确认弹窗);
- 隐私政策同意之前,禁用GDT、XMB参数、友盟SDK的初始化;
- 修复分享和MyTipDialog在非AppCompat主题中崩溃;
### 21.6.11
- 更新GDT至1240,并更新测试开屏广告位;
- 添加推送广告开关接口ZzAdUtils.closePushAd/openPushAd(默认开启);
- WelcomeActivity和DoubleAgreementActivity取消继承BaseAppCompatActivity,优化不同意隐私政策的初始化;
### 21.9.26
- 更新GDT至1280,优化SplashUI中广告ID的获取方式;
- 修复未同意隐私政策前,ActivityMonitor读取进程名的bug;
- AdSwitchUtils.Ads添加穿山甲Csj/快手Ks/京东Jd;
- 优化Mtas.checkUpdate调用AutoUpdateUtil.checkUpdate;
- 优化WelcomeActivity获取在线参数延时1秒后进行其它初始化操作;
- 添加Vs.version_limit,在线参数设置最小版本,低于此版本的进入版本限制界面;
- 添加Vs.weal_url/crazy_url,福利链接(onCreate时弹出)、疯狂链接(onResume时弹出);
- 添加PropertiesUtil工具类,用于读取GDT错误码;
### 21.10.18【已删除】
- 更新GDT至1290;
- 更新友盟至9.4.4;
### 21.10.20
- 移除反馈10分钟拉取一次列表,改为进入反馈界面才进行拉取;
### 21.11.22【已删除】
- 更新GDT至1300/SpinKit至1.4.0/apm至1.5.2;
- 删除模糊的“下次再说”字样;
- 添加cj_apps,cj_mac,cj_imei采集APP、Mac、Imei开关,默认关闭;
- 添加XXPermissions权限工具类;
- 优化多个权限申请时,只要一个有权限成功onGranted就会调用;
- 修复权限永久拒绝后,提示跳转到权限列表手动解除禁止授权;
- 移除欢迎界面至开屏界面间的系统默认动画;
### 21.11.29
- 修复订单支付成功后不提示重启,导致会员没及时生效;
### 22.5.10
- 个人中心和付费界面兼容老年模式;
- 登录、注册、付费不再需要重启APP;
- 同时支持微信支付和支付宝支付,支持开关(zfb/wx)控制;
- 优化ViPConfigVO加载逻辑(在线参数#vip_config>服务器#vip_config.json>raw#vip_config.json);
- 引入BusUtils进行支付事件的分发;
### 22.6.28
- 修复订单日期格式问题;
- Demo支持配置服务器地址;
- 删除旧广告类改集成AdSDK;
- 优化退出登录逻辑;
- 个人中心添加查看机器码/复制客服QQ/查看系统版本;
- 更新Umeng库至9.5.0、XXPermissions库至15.0;
### 22.8.18
- 更新AgentWeb库至5.0.0、Gson库至2.9.1;
- 更改退出程序为完全退出,并添加完全退出CompleteExit开关;
- 删除清单文件和xml目录中广告相关的信息;
- 添加WebHtmlActivit至清单文件;
- 添加权限中转界面PermissionTransferUI;
- 修改欢迎界面不同意隐私政策也完全退出;
### 22.9.2
- 删除支付宝Jar,使用在线引用;
- 优化PermissionTransferUI配置;
- 完善HookUtils捕获读取安装列表和Android ID;
- 修改ActivityUtils.startActivity调用方式;
- 给废弃的源码文件添加@Deprecated标识;
- 优化隐私政策中的第三方SDK详情;
### 22.9.16
- 替换Hook库为OpenToolSDK库,完善隐私合规检测;
- 优化CustomOnCrash初始化,防止未同意隐私政策前读取安装列表;
### 22.11.22
- 移除涉嫌“捆绑注销”的文字说明;
- OrderBeanV2添加有支付没登录hasPayNoLogin方法;
- UserLoginDb添加getToken方法;
- 个人中心:“升级VIP,尊享特权”随支付开关显示隐藏;
- 用户反馈:登录成功后不需要填联系方式;
- 支付开关未打开时,可以用测试账号admin、123456进行登录(供市场登录使用);
- 修复深夜模式下,登录、注册的输入框背景和文字颜色都为白色,导致无法看清输入内容;
- 隐私政策/用户登录&注册&注销/购买会员/个人中心添加标题栏(主题为MtaAppTheme);
### 22.12.14
- 更新友盟SDK至9.5.4;
- 优化隐私政策,添加传感感说明;
### 23.2.10
- 添加云端用户数据增删改查(PayWebAPI.getUserData/updateUserData/deleteUserData);
- 更新友盟SDK至9.5.6;
- 添加XmbDataSign数据加密类;
### 23.2.23
- 隐私政策双协议弹窗,添加确认已阅读的复选框;
- 扩大用户注册界面中复选框的点击范围;
- 添加fix_sweet_dialog_bug.xml布局;
### 23.3.10
- 用户登录界面,添加我已阅读并同意隐私政策和用户协议的复选框;
### 23.3.18
- 优化用户云端数据接口(查询采用get,增删改采用post);
- 修改注册、注销、改码使用post方式;
- 发送反馈、事件采用post方式;
- 更新AndroidUtilCode至1.31.1,修复ActivityUtils隐私政策问题;
- 更新XXPermissions至16.8,修复报15.0同步失败的问题;
- 修复blankj启动时未授权就在SD卡/Android/media/下创建包名文件夹;
### 23.4.3
- 添加NbUriUtils,用于兼容blankj的FileProvider被禁用,导致UriUtils.file2Uri失效的bug;
- 优化机器码,IMEI用随机值,MAC用固定值;
- 移除xmta_permission_array里面ACCESS_WIFI_STATE权限;
- 更新libxo.so文件,同时支持签名MD5或MD5冒号的密钥;
- 集成DialogX库,替换SweetAlertDialog为MessageDialog;
- 修改反馈界面的默认标题“在线客服”为“意见反馈”,并移除“在线客服”字样;
- 反馈内容和注销原因,添加屏蔽表情字符;
- 弱化alls_open开关(和渠道debug效果一致),之前的全部开关打开太猛了;
- 添加弹机器码对话框接口:BaseUtils.doCode();
- 隐私政策和用户协议支持从网页加载;
### 23.8.25
- 双协议对话框、登录和注册界面修改为只点复选框才响应勾选;
- 隐私政策界面添加右上角长按导出替换后的html文件;
- 隐私政策中的${app_name}支持多名称替换(键名为multiple_app_name);
- 修改反馈界面的首条默认提示(键名为fb_default_prompt_message);
- 升级DialogX库至0.0.48;
- 修复自动更新,未授存储权限时,强制更新失效;
- 升级友盟SDK至9.6.3、alipaysdk至15.8.16、XXPermissions至18.3;
### 23.12.12
- 注册界面添加验证码,用于实名验证;
- 个人中心、反馈、支付界面的手机号进行脱敏展示;
- 更新友盟SDK至9.6.6,合规优化;
- 验证码添加发送频繁限制;
### 25.9.22
- 更新友盟SDK至9.8.8;
### 遗留问题:
- 线程策略(TreadPolicy)和VM策略(VmPolicy)全部开启时,程序不崩溃;
- 部分机型出现两次支付成功回调;
- 2023-11-28 15:48:22#AppUtils.hasSDCardPermission在targetSdkVersion>30调用会崩溃;