Face_reg_app/android-sdk/SDK_INTEGRATION.md

169 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Android SDK 集成文档
## 概述
Face SDK 是一个离线人脸识别 SDK支持人脸检测、特征提取、活体检测和本地识别。
## 集成步骤
### 1. 添加 AAR 文件
`face-core-release.aar` 复制到您的项目 `app/libs` 目录下。
### 2. 配置 Gradle
`app/build.gradle.kts` 中添加:
```kotlin
android {
defaultConfig {
ndk {
abiFilters.add("arm64-v8a")
}
}
}
dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar"))))
implementation("com.google.code.gson:gson:2.10.1")
}
```
### 3. 初始化 SDK
在 Application 或 Activity 中初始化:
```java
import com.bonuos.facesdk.FaceRecognizer;
import com.bonuos.facesdk.SyncManager;
public class MyApplication extends Application {
private FaceRecognizer faceRecognizer;
private SyncManager syncManager;
@Override
public void onCreate() {
super.onCreate();
// 初始化识别器
faceRecognizer = new FaceRecognizer(this);
// 初始化同步管理器
syncManager = new SyncManager(this);
// 同步数据
syncManager.syncData();
}
}
```
### 4. 使用人脸识别
```java
import android.graphics.Bitmap;
import com.bonuos.facesdk.FaceRecognizer;
// 识别人脸
Bitmap bitmap = ...; // 从相机或图片获取
FaceRecognizer.RecognitionResult result = faceRecognizer.recognize(bitmap);
if (result.success) {
String userName = result.user.name;
float similarity = result.similarity;
Log.i("FaceSDK", "识别成功: " + userName + ", 相似度: " + similarity);
} else {
Log.w("FaceSDK", "识别失败: " + result.message);
}
```
### 5. 数据同步
```java
import com.bonuos.facesdk.SyncManager;
SyncManager syncManager = new SyncManager(context);
// 配置服务器地址(在 SyncManager.java 中修改 SYNC_URL
// 触发同步
syncManager.syncData();
```
## API 参考
### FaceRecognizer
#### 构造方法
```java
FaceRecognizer(Context context)
```
#### 主要方法
**recognize(Bitmap bitmap)**
- 参数: `Bitmap` - 待识别的人脸图片
- 返回: `RecognitionResult` - 识别结果
- 说明: 执行人脸识别,返回匹配的用户信息
**setThreshold(float threshold)**
- 参数: `float` - 识别阈值 (0.0-1.0)
- 说明: 设置识别阈值,默认 0.80
**release()**
- 说明: 释放资源
### SyncManager
#### 构造方法
```java
SyncManager(Context context)
```
#### 主要方法
**syncData()**
- 说明: 从服务器同步人员数据到本地数据库
### LivenessDetector
#### 主要方法
**init(Context context)**
- 说明: 初始化活体检测
**detect(Bitmap bitmap, LivenessCallback callback)**
- 参数:
- `Bitmap` - 待检测的人脸图片
- `LivenessCallback` - 回调接口
- 说明: 执行活体检测
## 权限要求
`AndroidManifest.xml` 中添加:
```xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
```
## 注意事项
1. SDK 仅支持 arm64-v8a 架构
2. 需要 Android 7.0 (API 24) 或更高版本
3. 首次运行会自动复制模型文件,需要一定时间
4. 人脸识别操作建议在后台线程执行
## 常见问题
### 库加载失败
确保所有 .so 文件都在 `jniLibs/arm64-v8a/` 目录下。
### 识别率低
- 调整识别阈值
- 确保照片质量良好
- 确保光线充足
### 同步失败
- 检查网络连接
- 检查服务器地址配置
- 检查服务器是否正常运行