Browse Source

change debug & add test format switch

devab
MTing 3 weeks ago
parent
commit
b3730cb856
  1. 4
      app/build.gradle
  2. 51
      app/src/main/java/com/ouxuan/oxface/DebugActivity.java
  3. 5
      app/src/main/java/com/ouxuan/oxface/network/NetworkConfig.java
  4. 84
      app/src/main/java/com/ouxuan/oxface/network/NetworkEnvironmentManager.java
  5. 29
      app/src/main/java/com/ouxuan/oxface/network/NetworkManager.java
  6. 10
      app/src/main/java/com/ouxuan/oxface/network/utils/NetworkUtils.java
  7. 31
      app/src/main/res/layout/activity_debug.xml

4
app/build.gradle

@ -24,8 +24,8 @@ android {
debug {
minifyEnabled false
debuggable true
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
// applicationIdSuffix ".debug"
// versionNameSuffix "-debug"
//
crunchPngs false

51
app/src/main/java/com/ouxuan/oxface/DebugActivity.java

@ -15,18 +15,15 @@ import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
// 恢复原来的导入
//import com.baidu.idl.face.main.finance.manager.FaceSDKManager;
import com.baidu.idl.face.main.finance.listener.SdkInitListener;
import com.baidu.idl.face.main.finance.manager.FaceSDKManager;
import com.ouxuan.oxface.device.DeviceUtils;
import com.ouxuan.oxface.device.GateABController;
import com.ouxuan.oxface.device.HuaWeiScanManager;
import com.ouxuan.oxface.device.Ox485;
import com.ouxuan.oxface.device.RelayController;
import com.ouxuan.oxface.network.utils.NetworkUtils;
import com.ouxuan.oxface.network.NetworkEnvironmentManager;
import com.ouxuan.oxface.network.NetworkManager;
import com.ouxuan.oxface.utils.AutoStartManager;
import com.ouxuan.oxface.utils.BootSimulationHelper;
import com.ouxuan.oxface.utils.LogManager;
@ -45,6 +42,7 @@ public class DebugActivity extends Activity {
private RelayController relayController;
private Ox485 ox485;
private GateABController gateABController;
private NetworkEnvironmentManager environmentManager; // 添加环境管理器
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -71,6 +69,8 @@ public class DebugActivity extends Activity {
ox485.initialize(this);
gateABController = GateABController.getInstance();
gateABController.initialize(this);
// 初始化环境管理器
environmentManager = NetworkEnvironmentManager.getInstance(this);
}
private void setupClickListeners() {
@ -309,6 +309,47 @@ public class DebugActivity extends Activity {
run485QuickTest();
}
});
// 添加切换网络环境按钮的点击监听器
Button btnToggleNetworkEnv = findViewById(R.id.btnToggleNetworkEnv);
btnToggleNetworkEnv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toggleNetworkEnvironment();
}
});
}
/**
* 切换网络环境
*/
private void toggleNetworkEnvironment() {
logMessage("切换网络环境...");
try {
// 获取当前环境
int currentEnv = environmentManager.getCurrentEnvironment();
String currentEnvName = (currentEnv == NetworkEnvironmentManager.ENVIRONMENT_PRODUCTION) ? "正式环境" : "测试环境";
logMessage("当前环境: " + currentEnvName);
// 切换到下一个环境
int newEnv = environmentManager.toggleEnvironment();
String newEnvName = (newEnv == NetworkEnvironmentManager.ENVIRONMENT_PRODUCTION) ? "正式环境" : "测试环境";
logMessage("切换到: " + newEnvName);
// 重新初始化NetworkManager的Retrofit
NetworkManager networkManager = NetworkManager.getInstance(this);
networkManager.reinitializeRetrofit();
// 重新初始化NetworkUtils中的API服务实例
com.ouxuan.oxface.network.utils.NetworkUtils.reinitializeServices();
logMessage("网络环境切换完成,新的BASE_URL: " + environmentManager.getCurrentBaseUrl());
showToast("网络环境已切换到" + newEnvName);
} catch (Exception e) {
Log.e(TAG, "切换网络环境失败", e);
logMessage("切换网络环境失败: " + e.getMessage());
showToast("切换网络环境失败");
}
}
/**

5
app/src/main/java/com/ouxuan/oxface/network/NetworkConfig.java

@ -7,8 +7,9 @@ package com.ouxuan.oxface.network;
public class NetworkConfig {
// API基础URL - 欧轩智能测试环境
// public static final String BASE_URL = "https://facepad.ouxuanzhineng.cn/"; //正式
public static final String BASE_URL = "https://testmanager.ouxuanzhineng.cn/"; //测试
public static final String BASE_URL = "https://facepad.ouxuanzhineng.cn/"; //正式
public static final String BASE_URL_FORMAT = "https://facepad.ouxuanzhineng.cn/"; //正式
public static final String BASE_URL_TEST = "https://testmanager.ouxuanzhineng.cn/"; //测试
// API版本路径
public static final String API_VERSION = "v3/";

84
app/src/main/java/com/ouxuan/oxface/network/NetworkEnvironmentManager.java

@ -0,0 +1,84 @@
package com.ouxuan.oxface.network;
import android.content.Context;
import android.content.SharedPreferences;
/**
* 网络环境管理器
* 用于管理正式环境和测试环境的切换
*/
public class NetworkEnvironmentManager {
private static final String PREF_NAME = "network_environment";
private static final String KEY_CURRENT_ENV = "current_environment";
// 环境类型
public static final int ENVIRONMENT_PRODUCTION = 0; // 正式环境
public static final int ENVIRONMENT_TEST = 1; // 测试环境
private static NetworkEnvironmentManager instance;
private SharedPreferences sharedPreferences;
private NetworkEnvironmentManager(Context context) {
sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}
public static NetworkEnvironmentManager getInstance(Context context) {
if (instance == null) {
synchronized (NetworkEnvironmentManager.class) {
if (instance == null) {
instance = new NetworkEnvironmentManager(context.getApplicationContext());
}
}
}
return instance;
}
/**
* 获取当前环境类型
* @return 环境类型 (ENVIRONMENT_PRODUCTION ENVIRONMENT_TEST)
*/
public int getCurrentEnvironment() {
return sharedPreferences.getInt(KEY_CURRENT_ENV, ENVIRONMENT_PRODUCTION);
}
/**
* 切换到下一个环境
* @return 切换后的环境类型
*/
public int toggleEnvironment() {
int currentEnv = getCurrentEnvironment();
int newEnv = (currentEnv == ENVIRONMENT_PRODUCTION) ? ENVIRONMENT_TEST : ENVIRONMENT_PRODUCTION;
saveEnvironment(newEnv);
return newEnv;
}
/**
* 设置环境类型
* @param environment 环境类型
*/
public void setEnvironment(int environment) {
saveEnvironment(environment);
}
/**
* 保存环境设置
* @param environment 环境类型
*/
private void saveEnvironment(int environment) {
sharedPreferences.edit().putInt(KEY_CURRENT_ENV, environment).apply();
}
/**
* 获取当前环境的BASE_URL
* @return BASE_URL
*/
public String getCurrentBaseUrl() {
int currentEnv = getCurrentEnvironment();
if (currentEnv == ENVIRONMENT_TEST) {
return NetworkConfig.BASE_URL_TEST;
} else {
return NetworkConfig.BASE_URL_FORMAT;
}
}
}

29
app/src/main/java/com/ouxuan/oxface/network/NetworkManager.java

@ -41,10 +41,12 @@ public class NetworkManager {
private Handler mainHandler;
private Context context;
private NetworkStabilityManager networkStabilityManager;
private NetworkEnvironmentManager environmentManager; // 添加环境管理器
private NetworkManager(Context context) {
this.context = context.getApplicationContext();
this.networkStabilityManager = NetworkStabilityManager.getInstance(this.context);
this.environmentManager = NetworkEnvironmentManager.getInstance(this.context); // 初始化环境管理器
initOkHttpClient(context);
initRetrofit();
initGson();
@ -112,14 +114,31 @@ public class NetworkManager {
* 初始化Retrofit
*/
private void initRetrofit() {
// 使用环境管理器获取当前环境的BASE_URL
String baseUrl = environmentManager.getCurrentBaseUrl();
retrofit = new Retrofit.Builder()
.baseUrl(NetworkConfig.BASE_URL)
.baseUrl(baseUrl)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
/**
* 重新初始化Retrofit用于环境切换后重新配置
*/
public void reinitializeRetrofit() {
// 使用环境管理器获取当前环境的BASE_URL
String baseUrl = environmentManager.getCurrentBaseUrl();
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
LogManager.logOperation("NetworkManager", "Retrofit已重新初始化,当前BASE_URL: " + baseUrl);
}
/**
* 初始化Gson
*/
private void initGson() {
@ -399,4 +418,12 @@ public class NetworkManager {
networkStabilityManager.stopNetworkMonitoring();
LogManager.logOperation("NetworkManager", "网络状态监控已停止");
}
/**
* 获取环境管理器
* @return NetworkEnvironmentManager实例
*/
public NetworkEnvironmentManager getEnvironmentManager() {
return environmentManager;
}
}

10
app/src/main/java/com/ouxuan/oxface/network/utils/NetworkUtils.java

@ -36,6 +36,16 @@ public class NetworkUtils {
}
/**
* 重新初始化API服务用于网络环境切换后重新创建服务实例
*/
public static void reinitializeServices() {
if (networkManager != null) {
userApiService = networkManager.createService(UserApiService.class);
padApiService = networkManager.createService(PadApiService.class);
}
}
/**
* 用户登录
* @param username 用户名
* @param password 密码

31
app/src/main/res/layout/activity_debug.xml

@ -386,6 +386,37 @@
</LinearLayout>
<!-- 第十一行按钮 - 新增网络环境切换按钮 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="8dp">
<Button
android:id="@+id/btnToggleNetworkEnv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="切换网络环境"
android:layout_marginEnd="4dp"
android:textSize="12sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="4dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>

Loading…
Cancel
Save