跳到主要内容

实现

重要提示!

从版本 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 方法收集并发送数据。