实现
重要提示!
从版本 5.0.0 开始,认证系统已更新为使用动态 token 替代 mobileToken。在配置 SDK 之前,您必须通过向我们的 Device Scan API 发送服务器间请求来生成临时 token。
package com.example.zaig_device_scan_sdk_test_app;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.zaig.android.devicescan.DeviceScan;
import com.zaig.android.devicescan.DeviceScanNotifier;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private DeviceScan deviceScan;
private DeviceScanNotifier deviceScanNotifier;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
deviceScanNotifier = new DeviceScanNotifier(this);
}
public void sendDeviceScan(View view) {
try{
deviceScan = new DeviceScan.Builder(this.getApplicationContext())
.setToken(this.token)
.setSessionId(this.sessionId)
.setNotifier(this.deviceScanNotifier)
.setSandboxEnvironment()
.build();
}catch (Exception ex) {
Log.e("DeviceScan Error", "There was an error collecting DeviceScan data: " + ex.toString());
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
try{
deviceScan.collectData(this.documentNumber,
this.eventId,
this.eventType);
}catch (Exception ex) {
Log.e("DeviceScan Error", "There was an error collecting DeviceScan data: " + ex.toString());
}
}
private class ScanNotifier implements DeviceScanNotifier {
AppCompatActivity activity;
public ScanNotifier (AppCompatActivity myActivity){
// 此方法可自定义,可用于存储 Activity,用于操作 UI
this.activity = myActivity;
}
public void onSuccess(){
Log.i("DeviceScan", "DeviceScan successfully submitted");
runOnUiThread(new Runnable() {
@Override
public void run() {
// 在设备扫描成功发送后,在此处添加所需的任何 UI 更改
}
});
}
public void onError(){
Log.i("DeviceScan", "DeviceScan submission failed");
runOnUiThread(new Runnable() {
@Override
public void run() {
// 在设备扫描成功发送后,在此处添加所需的任何 UI 更改
}
});
}
}
}
要使用 Android Device Scan SDK,需要执行以下步骤:
- 在应用程序 manifest 中添加权限;
- 将库导入应用程序项目;
- 在应用程序启动时,实例化库,并在构造函数中传入适当的参数,包括负责返回操作结果的 Notifier;
- 使用 Activity 的
onRequestPermissionsResult函数获取权限请求批准或拒绝的结果通知; - 向用户请求权限。互联网访问权限对于库的正常运行是必需的;
- 收到权限批准或拒绝结果后,通过
collectData方法收集并发送数据。