diff --git a/app/build.gradle b/app/build.gradle index 8f23d5e..705f5fd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,6 +31,8 @@ android { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' + // 排除重复的OpenNI类 + exclude 'org/openni/**' } buildTypes { @@ -81,10 +83,19 @@ dependencies { // 人脸识别库 implementation project(':facelibrary') + implementation project(':financelibrary') // implementation project(':oxplugin_padface') - implementation files('libs/orbbec_module-debug.aar') + // 添加对orbbec_module-debug.aar的依赖,通过flatDir方式 + implementation(name: 'orbbec_module-debug', ext: 'aar') + testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' +} + +configurations { + all { + exclude group: 'org.openni' + } } \ No newline at end of file diff --git a/app/src/main/java/com/ouxuan/oxface/DebugActivity.java b/app/src/main/java/com/ouxuan/oxface/DebugActivity.java index efa8945..c27f412 100644 --- a/app/src/main/java/com/ouxuan/oxface/DebugActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/DebugActivity.java @@ -15,6 +15,12 @@ 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.network.utils.NetworkUtils; import com.ouxuan.oxface.utils.AutoStartManager; @@ -156,6 +162,15 @@ public class DebugActivity extends Activity { } }); + // 初始化人脸SDK按钮 + Button btnInitFaceSDK = findViewById(R.id.btnInitFaceSDK); + btnInitFaceSDK.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + initFaceSDK(); + } + }); + // 关闭按钮 Button btnClose = findViewById(R.id.btnClose); btnClose.setOnClickListener(new View.OnClickListener() { @@ -341,6 +356,111 @@ public class DebugActivity extends Activity { } /** + * 初始化人脸SDK + */ + private void initFaceSDK() { + logMessage("开始初始化人脸SDK..."); + try { + FaceSDKManager faceSDKManager = FaceSDKManager.getInstance(); + + // 打印SDK版本信息 + logMessage("人脸SDK管理器实例获取成功"); + logMessage("当前SDK初始化状态: " + FaceSDKManager.initStatus); + + faceSDKManager.init(this, "GEXH-QSMV-3MDX-Y9XS", new SdkInitListener() { + @Override + public void initStart() { + logMessage("人脸SDK授权初始化开始..."); + logMessage("设备信息: " + android.os.Build.MODEL + " (" + android.os.Build.VERSION.SDK_INT + ")"); + } + + @Override + public void initLicenseSuccess() { + logMessage("人脸SDK授权成功"); + // 获取并显示授权信息 + String licenseData = faceSDKManager.getLicenseData(DebugActivity.this); + logMessage("人脸SDK授权有效期至: " + licenseData); + logMessage("授权后SDK状态: " + FaceSDKManager.initStatus); + showToast("人脸SDK授权成功"); + // 授权成功后继续初始化模型 + initFaceModels(); + } + + @Override + public void initLicenseFail(int errorCode, String msg) { + logMessage("人脸SDK授权失败 - 错误码: " + errorCode + ", 错误信息: " + msg); + logMessage("失败时SDK状态: " + FaceSDKManager.initStatus); + showToast("人脸SDK授权失败"); + } + + @Override + public void initModelSuccess() { + // 这个回调在init方法中不会触发,因为init方法不初始化模型 + } + + @Override + public void initModelFail(int errorCode, String msg) { + // 这个回调在init方法中不会触发,因为init方法不初始化模型 + } + }); + + } catch (Exception e) { + Log.e(TAG, "初始化人脸SDK失败", e); + logMessage("初始化人脸SDK失败: " + e.getMessage()); + showToast("初始化人脸SDK失败"); + } + } + + /** + * 初始化人脸模型 + */ + private void initFaceModels() { + logMessage("开始初始化人脸模型..."); + logMessage("初始化前模型状态: " + FaceSDKManager.initModelSuccess); + try { + FaceSDKManager faceSDKManager = FaceSDKManager.getInstance(); + + // 初始化模型 + faceSDKManager.initModel(this, new SdkInitListener() { + @Override + public void initStart() { + logMessage("人脸模型初始化开始..."); + } + + @Override + public void initLicenseSuccess() { + // 授权已在initFaceSDK中处理 + } + + @Override + public void initLicenseFail(int errorCode, String msg) { + // 授权已在initFaceSDK中处理 + } + + @Override + public void initModelSuccess() { + logMessage("人脸SDK模型初始化成功"); + logMessage("模型初始化完成,当前状态: " + FaceSDKManager.initModelSuccess); + showToast("人脸SDK模型初始化成功"); + logMessage("人脸SDK初始化完成,可以开始使用人脸识别功能"); + logMessage("SDK最终状态 - 授权: " + FaceSDKManager.initStatus + ", 模型: " + FaceSDKManager.initModelSuccess); + } + + @Override + public void initModelFail(int errorCode, String msg) { + logMessage("人脸SDK模型初始化失败 - 错误码: " + errorCode + ", 错误信息: " + msg); + logMessage("模型初始化失败,当前状态: " + FaceSDKManager.initModelSuccess); + showToast("人脸SDK模型初始化失败"); + } + }); + } catch (Exception e) { + Log.e(TAG, "初始化人脸模型失败", e); + logMessage("初始化人脸模型失败: " + e.getMessage()); + showToast("初始化人脸模型失败"); + } + } + + /** * 在日志输出区域添加消息 * @param message 要添加的消息 */ @@ -368,6 +488,11 @@ public class DebugActivity extends Activity { * @param message 要显示的消息 */ private void showToast(String message) { - Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(DebugActivity.this, message, Toast.LENGTH_SHORT).show(); + } + }); } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_debug.xml b/app/src/main/res/layout/activity_debug.xml index a2184f7..3d4a4d9 100644 --- a/app/src/main/res/layout/activity_debug.xml +++ b/app/src/main/res/layout/activity_debug.xml @@ -166,14 +166,53 @@ android:textSize="12sp" />