このページのみ全てのページ
GitBook提供
1 / 23

2.1.1-日本語

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Thunder SDKパッケージ

Thunder SDK Zipファイルには下記コンテンツがあります。ご確認ください。

  • 開発者向けドキュメント

    • ファイル名 :開発マニュアル(日本語版)

    • ファイル名 :

    • ファイル名 :

    • ファイル名 : ※TSLとは物理エンティティをデジタル化し、クラウド内にエンティティを構築するデータモデルで、では「オブジェクトモデル」とも呼んでいます。

  • フォルダー名 model:一般向けに公開されているアルゴリズムモデルが格納されています。プロジェクトの要件に応じて、適切なモデルを選択して適用します。モデルの選択方法については、をご参照ください。

  • フォルダー名 sample:Thunder SDKの基本的な機能を紹介するためのサンプルプログラムです。コンパイルして実行するためには、に記載されているアクセス手順に従って、関連するリソースを sampleフォルダにコピーする必要があります。

  • フォルダー名 jniLibs:一般向けに公開されている複数のデバイスやプラットフォームに対応した、コアアルゴリズムのダイナミックライブラリが格納されています。プロジェクトの要件に応じて適切なダイナミックライブラリを選択し、適用します。ライブラリの選択方法については、をご参照ください。

  • フォルダー名 license:異なるハードウェアプラットフォーム上で使用するテスト用ライセンスファイルが含まれています。本ライセンスはテスト用にのみ使用でき、製品が正式リリース後には、別途利用申請する必要があります。使用方法についてはをご参照ください。

  • ファイル名 thunder-android*.aar:Thunder SDK開発キット。開発時にはプロジェクトにaarをコピーする必要があります。使用方法について、をご参照ください。

API仕様書(日本語版)
Senselinkとの連携マニュアル(日本語版)
オブジェクトモデル(TSL)説明マニュアル(日本語版)
オブジェクトモデル(TSL)説明マニュアル(日本語版)
開発マニュアル(日本語版)
開発マニュアル(日本語版)
開発マニュアル(日本語版)
開発マニュアル(日本語版)
開発マニュアル(日本語版)

リリースノート

日付

バージョン

リリースノート

2021/4/15

2.0.0(beta)

SensePass、SenseThunderE、SenseThunderE-mini、SenseThunderAirにおける顔認証/温度検知などのAI機能を提供する。 顔認証アルゴリズム - 1:1顔認証 - 1:N顔認証 - 生体検知 - マスク検知 - サーバサイド顔認証 温度検知 - 温度検知 SenseLinkとの接続 - SenseLink Cloud 2.4.0に対応 - デバイス登録 - ユーザーのログイン - データ同期化 - レコードアップロード - 構成情報の送信 ハードウェアコントロール - カメラコントロール - サーマルイメージングシステムコントロール - ドアコントロール(リレー、Wiegand)

2021/4/28

2.0.0

日本語ドキュメントの提供開始

2021/04/30

2.1.0

ビデオストリーム出力サポート (RGBとIR画像の結合)

画像回転サポート

顔認証画像の一致度チェック結果確認をサポート

温度検知アルゴリズム更新

属性検知・分析をサポート

2021/06/30

2.1.1

サンプルコード改善

カメラAPI改善

LinkSDK

ドキュメンテーション

https://docs.japancv.co.jp/thundersdk/japanese-dev-documents

はじめに

Thunder SDKはSenseThunderに様々な機能を追加できる開発キットです。属性検知機能や、UIの変更、QRコードの読み取り機能など店舗や施設に最適な独自開発が可能になります。

顔キャリブレーションチェック

顔キャリブレーションが正しくできているかをチェック

機能類の説明

CalibrationUtils

メンバー関数

説明

導入バージョン

boolean checkCalibration(Bitmap rgbFace, Bitmap irFace)

顔キャリブレーションが正しくできているかをチェック

2.1.0

メンバー関数の説明

boolean checkCalibration(Bitmap rgbFace, Bitmap irFace)

パラメータ

パラメータ名

型

説明

備考

導入バージョン

rgbFace

Bitmap

RGB顔画像

なし

2.1.0

irFace

Bitmap

IR顔画像

なし

戻り値

顔キャリブレーションが正しくできている場合はtrueを返し、そうでない場合はfalseを返す

例外

なし

SDK オーソライゼーション

Thunder SDKの初期化とオーソライゼーション

機能類の説明

WuKong

メンバー関数の説明

void init (Context context)

初期化

パラメータ

戻り値

なし

例外

なし

void auth (String licFileName, boolean isLeafLic, String productName, PassModel modelConfig, IAuthCallback authCallback)

オーソライゼーション

パラメータ

戻り値

なし

例外

なし

void release ()

SDKリソースを解放

パラメータ

なし

戻り値

なし

例外

なし

画像の回転

画像の回転

機能類の説明

RotateImageUtil

メンバー関数の説明

byte[] rotateImage(@NonNull byte[] resBuff, @NonNull MidPixelFormat pixelFormat, int width, int height, int degree)

パラメータ

戻り値

回転された画像byte[]

例外

なし

QRコード

QRコードの内容を識別

機能類の説明

QRCodeDecoderProxy

メンバー関数の説明

String decodeQRCode(byte[] nv21, int w, int h)

QRコードを解析

パラメータ

戻り値

解析されたQRコードstring

例外

なし

String decodeQRCode(Bitmap bitmap)

QRコードを解析

パラメータ

戻り値

解析されたQRコードstring

例外

なし

API仕様書

このドキュメントは、Thunder SDK APIの機能について説明しており、開発者が各型によって提供される特定の目的と機能を理解できるようにまとめられています。

バージョン

修正日

修正履歴

2.0.0

03/01/2021

初版

2.1.0

04/30/2021

ビデオストリーム出力のためのAPIを追加

属性分析のAPIを追加

顔認識用のキャリブレーションチェックAPIを追加

画像回転APIを追加

温度検知モデルを更新

2.1.1

06/30/2021

2.1.0

カメラAPIを更新

温度検知モデルを更新

productName

String

デバイスプロダクト名

なし

2.0.0

modelConfig

PassModel

モデル構成

なし

2.0.0

authCallback

IAuthCallback

オーソライゼーションコールバック

なし

2.0.0

メンバー関数

説明

導入バージョン

void init(Context context)

初期化

2.0.0

void auth(String licFileName, boolean isLeafLic, String productName, PassModel modelConfig,IAuthCallback authCallback)

オーソライゼーション

2.0.0

void release()

SDKリソースの解放

2.0.0

パラメータ名

型

説明

備考

導入バージョン

context

Context

context object

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

licFileName

String

ライセンスファイル名

なし

2.0.0

isLeafLic

boolean

リーフライセンスであるかを判定

なし

2.0.0

width

int

画像の幅

なし

2.1.0

height

int

画像の高さ

なし

2.1.0

degree

MidPixelFormat

画像の回転角度

なし

2.1.0

メンバー関数

説明

導入バージョン

byte[] rotateImage(@NonNull byte[] resBuff, @NonNull MidPixelFormat pixelFormat, int width, int height, int degree)

画像を回転

2.1.0

パラメータ名

型

説明

備考

導入バージョン

resBuff

byte[]

画像データ

なし

2.1.0

pixelFormat

MidPixelFormat

画像の形式

なし

2.1.0

h

int

プレビューの高さ

なし

2.0.0

メンバー関数

説明

導入バージョン

String decodeQRCode(byte[] nv21, int w, int h)

QRコード識別

2.0.0

String decodeQRCode(Bitmap bitmap)

QRコード識別

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

nv21

byte[]

プレビューのフレームデータ

なし

2.0.0

w

int

プレビューの幅

なし

パラメータ名

Type

説明

備考

導入バージョン

bitmap

Bitmap

画像データ

なし

2.0.0

2.0.0

サンプルソフトウェア

ソフトウェアの主な機能の紹介

  • 顔認証: 1:1認証、1:N認証、サーバー認証、QR コード認証、温度測定および検知

  • ハードウェア周辺機器の操作

  • SenseLink へのアクセス

実行結果は、以下の通りです。

顔認証

以下に示すように、1:1認証、1:N認証、サーバーサイド認証、QR コード認証、温度測定および検知が含まれます。

1:1認証

“1:1認証"は、“あなたがあなたであること”を証明するプロセスです。具体的には、特定の身元情報をシステムが保持している場合、カメラ画面に映っている人物の顔情報と保存している身元情報が一致するかを判断します。

使用する前に、以下のように対象となる人物の写真を追加する必要があります。

その後、1:1認証を実行します。

1:N認証

1:N認証とは、認証対象の顔画像セットをローカルの顔フィーチャーライブラリに登録しておき、カメラが顔情報を取得した際にライブラリ内の顔フィーチャーセットと比較することで、認証結果を導き出します。

使用する前に、以下のように顔フィーチャーデータベースを構築する必要があります。

その後、1:N認証を実行します。

サーバーサイド認証

サーバーサイド認証とは1:N認証モードのひとつであり、「顔比較」のリンク内でローカル実行をリモート実行に置き換えたものです。サーバー上に顔フィーチャーが保存されているために顔フィーチャーライブラリを構築する必要はなく、以下のように直接入力するだけです。

なお、ユーザー自身が独自のサーバー比較ロジックを実装する必要があります。詳細については、をご参照ください。

QRコード認証

QRコードの内容を解析し、鮮明に読み込めるようにQRコードをプレビュー画面に配置します。認証に成功した場合、以下のようにQRコードの内容が画面に表示されます。

温度測定および認証

顔認証機能と温度測定モジュールを介して顔および熱力学線図のデータをアルゴリズムにより処理し、最終的な顔の温度を取得します。現在サポートされている温度測定モジュールは、Arrowモジュール、Guide120モジュール、およびGuide256モジュールです。最終的な顔の温度値は、周囲の温度、モジュールのモデル、使用方法などによって異なる場合がありますのでご注意ください。

温度測定および認証には1:N顔フィーチャーライブラリが搭載されています。使用前に1:N認証を参照して顔フィーチャーを設定し、設定完了後に温度測定および認証機能を入力します。

ハードウェアデバイスの操作

PassとThunderシリーズの一部の周辺機器と互換性があります。対応する周辺機器は次の図のとおりです。

SenseLink へのログイン

newDeviceKeyの値がtrueであれば、利用中のデバイスはSenseLinkにログインしていないことを意味します。サーバーアドレス、アカウント名、およびパスワードを入力して、ログインをクリックしてください。以下の図が表示されれば、ログインは成功です。

データおよび TSL モデルのアップロード

顔認証やQRコードなどにより取得したデータをSenseLinkにアップロードします。またTSLモデルをSenseLinkにアップロードします。詳細については、以下のグラフをご覧ください。

フィーチャーマネジメント

顔フィーチャーライブラリのマネジメント

クラスの説明

FeatureManagerProxy

メンバー関数

説明

導入バージョン

int delete(int userId)

ユーザーIDの顔フィーチャーを削除

2.0.0

byte[] getFeature( Bitmap avatar)

画像の顔フィーチャーを取得

2.0.0

int insert(int userId, byte[] feature)

フィーチャーライブラリの追加

2.0.0

メンバー関数の説明

int delete(int userId)

顔フィーチャーを削除

パラメータ

パラメータ名

Type

説明

備考

導入バージョン

userId

int

顔フィーチャーID

なし

2.0.0

戻り値

削除が成功した場合に0を返す。そうでない場合は下記の値を返す ・不正なパラメータの場合、-1を返す ・顔フィーチャーライブラリが空の場合、-260を返す ・検索結果にない場合、-261を返す

例外

なし

byte[] getFeature(Bitmap avatar)

画像の顔フィーチャーを取得

パラメータ

パラメータ名

Type

説明

備考

導入バージョン

avatar

Bitmap

個人の鮮明な画像

なし

2.0.0

戻り値

顔フィーチャーのbyte配列を返

例外

なし

int insert(int userId, byte[] feature)

フィーチャーライブラリの追加

パラメータ

パラメータ名

Type

説明

備考

導入バージョン

userId

int

顔フィーチャーID

なし

2.0.0

feature

byte[]

顔フィーチャーバイト配列

なし

戻り値

挿入操作が成功した場合に0を返す。そうでない場合は下記の値を返す ・不正なパラメータの場合、-1を返す ・ライブラリに顔フィーチャー追加が失敗した場合、-259を返す ・UUIDを取得できない場合、-262を返す

例外

なし

link-api-dev-manual-jp.md

2.0.0

温度検知

温度検知のアルゴリズムと計算

クラスの説明

TemperatureActionProxy

メンバー関数の説明

int init(TempMeasureVersion algorithmVersion,TemperConvertCallback temperConvertCallback )

温度検知のアルゴリズムを初期化

SenseThunder-Airはモデル1.7.0(夏季モード)と1.8.0(通常モード)に対応します SenseThunder-Miniはモデル1.3.0(夏季モード)、1.5.0(通常モード)、1.10.0(冬季モード)、1.11.0(自動モード)に対応します SenseThunder-Eはモデル1.2.0(夏季モード)、1.5.0(通常モード)に対応します

パラメータ

戻り値

初期化が成功した場合に0を返す。そうでない場合は負の値を返す

例外

なし

TemperInfo temperCalculateObtainRect(FaceInfo faceInfo, float[] imageData, int width, int height, int orient, float envTemper, float topN)

温度を計算

パラメータ

戻り値

計算が成功した場合に温度数値とリジョン(温度検知するための顔の枠範囲)を返す。そうでない場合はnullを返す

例外

なし

TemperInfo[] multiTemperCalculate(MatchFace[] matchFaces, float[] temperatureData,int temperatureWidth, int temperatureHeight, float envTemper, int orient, float topN)

温度を計算

パラメータ

戻り値

計算が成功した場合に温度数値と結果配列を返す。そうでない場合はnull配列を返す

例外

なし

void release()

温度検知リソースを解放

パラメータ

なし

戻り値

なし

例外

なし

width

int

画像の幅

なし

2.0.0

height

int

画像の高さ

なし

2.0.0

orient

int

顔の向き

なし

2.0.0

envTemper

float

環境温度

なし

2.0.0

topN

float

顔の情報(温度検知モデルは顔でのポイントを基に温度を検知。topNは比例数値であり、Inputが100%、50%のようなfloat値)

なし

2.0.0

temperatureWidth

int

図の幅

なし

2.0.0

temperatureHeight

int

図の高さ

なし

2.0.0

orient

int

顔の向き

なし

2.0.0

envTemper

float

環境温度

なし

2.0.0

topN

float

顔の情報

なし

2.0.0

メンバー関数

説明

導入バージョン

int init(TempMeasureVersion algorithmVersion,iTemperConvertCallback temperConvertCallback )

温度検知のアルゴリズムを初期化

2.0.0

TemperInfo temperCalculateObtainRect(FaceInfo faceInfo, float[] imageData, int width, int height, int orient, float envTemper, float topN)

Sensepass、SenseThunderE、 SenseThunderE-miniで個別に温度を測定

2.0.0

TemperInfo multiTemperCalculate(MatchFace[] matchFaces, float[] temperatureData,int temperatureWidth, int temperatureHeight, float envTemper, int orient, float topN)

SenseThunderAirで複数人に温度を測定

2.0.0

void release()

温度検知リソースを解放

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

algorithmVersion

TempMeasureVersion

アルゴリズムのバージョン

なし

2.0.0

temperConvertCallback

TemperConvertCallback

温度測定のコールバック

なし

パラメータ名

Type

説明

備考

導入バージョン

faceInfo

FaceInfo

顔情報

なし

2.0.0

imageData

float[]

画像データ

なし

パラメータ名

Type

説明

備考

導入バージョン

MatchFace[]

matchFaces

マッチした情報配列

なし

2.0.0

temperatureData

float[]

図データ

なし

2.0.0

2.0.0

2.0.0

オブジェクトモデル(TSL)説明

Thing Specification Language(TSL)とは、エンド側とサーバー間の設定のために提供される記述ファイルであり、エンド側でサポートされている設定項目と設定項目に応じた制約を記述するために使用されます。

概要

SenseLinkプラットフォームはTSLを定義するためにデバイスをサポートします。デバイスの実際の設定(プロパティ、ステータス)から成るデータモデルによって、クラウドを介したデバイス管理が円滑化されます。

関数型

説明

TSL

TSLとは、デバイスが最初にSenseLinkにアクセスする際にデバイスからレポートされるJSON形式のファイルであり、バックエンドに保存されます。Webでデバイスの詳細を表示すると、デバイスに対応するTSLとTSLの値がWebで動的に読み込まれます。これにより、バックエンドのサービスを更新することなく、クラウド上のリモート設定機能とデバイスのローカル機能の一貫性を確保することができます。

TSLの使用フロー

  1. アプリにTSLを追加し、 に従って作成します。

  2. 必要な言語パッケージを作成します。形式については、 を参照してください。

  3. 開発が完了したら、デバイス上でプロパティやイベントをレポートし、プロパティを設定してクラウド上のサービスを呼び出してインターフェースの呼び出しステップを表示することができます。

  4. デバイスからレポートされた属性、イベント、および完了済サービスの呼び出しデータは、データ照合の通過後、SenseLinkコンソール内の対応するデバイスの

TSLの構造

TSLはトップレベルに「engineVersion」「modelVersion」「deviceType」を持つjsonファイルです。「properties」と関連する「status」をも含みます。

プロパティ

プロパティは、それぞれが複数の設定項目を持ついくつかのモジュールで構成されています。fields要素とも呼ばれる各設定項目はそれぞれの設定項目を説明し、機能を定義します。

フィールドはキーと値で構成されています。キーは設定項目の名前を示し、値は設定項目の任意の値、スタイル、ステータスを含む定義です。一部のフィールドの説明は以下の通りです。その他の設定については、[TSL data structure](#TSLdata structure)をご参照ください。

type:必須、設定項目の値の型(int、float、string、boolean、その他)を示しています

ranges:任意、typeがintやfloatなどの場合に、min:最小値、max:最大値、default:デフォルト値を含む値の区間を示します。

ui:任意、デフォルトはtext、Web/デバイスの入力制御スタイルを示すために使用されます。

uiに設定可能な値の一覧:

options:任意で、Valueが枯渇し得る場合(wiegand32、wiegand34、およびwiegand2602など)、一般的にuiのselectで使用されます。

ステータス

デバイスの周辺機器の状態を意味します。プラットフォームは書き込みは行わずに読み込みのみを行い、最新の状態のみを保持します。JSONファイルには、名前に対応する name、enable、および options、表示の有無、および任意の値が含まれます。詳細については、をご参照ください。

TSLの国際化

デバイス/Web上のシステム内の全てのTSLのデバイスタイプ、属性、およびステータスの表示名を定義し、言語ごとに別々に保存します。TSLの国際化は、TSLの値と名前をクラウドコンソール向けに分かりやすく説明し、操作の難易度を下げることを目的としています。各言語パッケージはJSON形式のファイルで構成され、対応するキーはTSLの対応する部分の翻訳です。

データ構造の詳細については、をご参照ください

付録

更新プロセス

言語パッケージのデータ構造

言語パッケージのデータ構造例は、以下の通りです。

TSLのデータ構造

TSL の JSON フィールドの構造例は、以下の通りです:

Senselinkとの連携

デバイス詳細
ページの
デバイス設定
タブに表示されます。

1行のテキスト入力

textarea

複数行のテキスト入力

image

画像のアップロードと表示

共通の翻訳。 例:"modelVersion":"Device model version"

プロパティ

パラメーターの命名、パラメーターの型、制御型、

製品の各機能のチェックルールなどを含みます。

デバイスやSenselinkプラットフォームにトリガーされることにより変更します。

ステータス

デバイスの周辺機器の状態です。

プラットフォームは書き込みを行わずに読み込みだけを行い、

ドアマグネットの状態、サーマルイメージングシステムの接続状態、Bluetoothロックバッテリーなど、最新の状態のみを保持します

uiに設定可能な値

説明

number

ナンバーピッカー

select

ドロップダウンボックス

checkbox

複数選択ボックス

radio

ラジオボタン

date

タイムピッカー

フィールド

説明

deviceTypes

デバイスタイプのセット。例:"deviceType":"spse"

groups

TSLのカテゴリー化名、プロパティ内の名前の翻訳。 例:properties[{"name":"general",...}]

fields

設定項目名、プロパティ内のフィールドの全ての「name」フィールド

values

設定に対応する値、ステータス内の値を含むTSL内の全ての値

status

デバイスの周辺機器の状態の表示名、ステータス内の「name」フィールド

TSLのデータ構造
TSLの国際化
更新プロセス
TSLのデータ構造
言語パッケージのデータ構造

text

common

LINK API について

Link APIは、SenseLinkプラットフォームのクラウド機能をカプセル化するための一連のインターフェースメソッドです。インターフェースメソッドには、プラットフォームRESTfulインターフェースのカプセル化と、プラットフォームのMqttメッセージのプッシュメカニズムのカプセル化の、主に2つのタイプがあります。プラットフォームが提供するクラウド機能を、一般的なJavaメソッドを呼び出すのと同じように使用することができます。 *JCVのSenselinkプラットフォームについては、下記リンクをご参照ください:https://docs.japancv.co.jp/senselink/

Link APIの使用

Link APIは主に、HttpApiClientとMqttApiClientの2つのコアタイプを提供しており、それぞれのタイプで提供されるメソッドを使用することでSenseLinkプラットフォームとの直接的な通信が実現できます。その方法を以下に紹介します。

  • HttpApiClient:プラットフォームのRESTful APIのカプセル化用であり、通信にはhttpプロトコルを使用し、共に同期化メソッドであるためワーカースレッドで使用する必要があります

  • MqttApiClient:プラットフォームメッセージのプッシュメカニズムのカプセル化用であり、通信にはMqttプロトコルを使用し、長距離通信を確立してメッセージのTopicにサブスクライブすることで、プラットフォームメッセージのプッシュを受信します

インターフェースメソッドに関するRESTful APIとMqtt Topicの詳細な定義については、「API仕様書」をご参照ください。

Link APIの初期化

Link APIは、統一された初期化エントリーを提供します。サーバーのURL、リクエストの読み込みと書き込みのタイムアウト、インターフェースから返される言語タイプなどを設定する必要があります。具体的な使用方法は以下の通りです。

初期化後、具体的なメソッドを呼び出して特定のサービスを実行できます。

RESTful APIのカプセル化方法

各RESTful APIインターフェースは、対応するJavaのメソッド実行をカプセル化します。具体的なエンティティークラスは、リクエストで要求されたパラメーターの受渡値とリクエストの結果データの両方によってカプセル化されています。例えば、認識レコードをアップロードするためにv2/recordリクエストを実行する場合、以下のように記述します。

以下のように、実行のための比較的シンプルなパラメーターを使用して、APIインターフェースに複数のパラメーターを直接受け渡すことができます。

  • デバイスのログイン操作

  • ユーザーIDに基づく詳細なユーザー情報の取得

「RESTful APIインターフェースの定義」と「APIとメソッド間の通信」の詳細については、API仕様書をご参照ください。

Mqttのプッシュメカニズムのカプセル化のメソッド

各MqttメッセージのプッシュTopicは、対応するJavaメソッドをカプセル化します。Topicにサブスクライブされるメッセージは、次のようにコールバックを登録することで受信されます。

  • サーバーとのMqtt長距離接続を以下のようにして確立します。

  • デバイスの登録者グループ変更にサブスクライブします

  • デバイスの登録者グループ変更のサブスクライブを解除します

「Mqtt Topic の定義」および「Topic のサブスクライブとメソッド間の通信」の詳細については、Thunder SDK API Documentをご参照ください。

主な使用プロセスについて

Link APIはSenselinkプラットフォームと簡単に通信する方法を提供しますが、一部の機能を使用する際には一定のプロセスステップに従わなければなりません。つまりRESTful APIインターフェースとMQTTトピックへのサブスクリプションの両方で、シーケンスに従う必要があります。以下、使用のシーケンスの観点から主要な機能の流れを中心に説明しています。

ログインと登録のステップ

SenseLinkプラットフォームの機能を利用するためには、ログインと登録操作が必要です。これにより、デバイスをプラットフォームに含めて一元管理することができます。 通信プロセスの簡単な説明は以下の通りです。

主なステップの説明は以下の通りです。

(1)デバイスのログイン:最初にプラットフォームからパブリックキーを取得するためにrequestHttpApiClient.getRsa()インターフェースをリクエストし、パブリックキーを使用してクリアテキストのパスワードを暗号化してログイン操作を行うためにHttpApiClient.login()インターフェースをリクエストします。2つのステップはHttpApiClient.login()メソッドを使用することで完了します。このメソッドは、メソッドのパラメーターとしてアカウント番号、暗号化されたパスワード、デバイスのタイプとデバイスのDUIDのみを受け渡すだけで済みます。

  • トークン:全てのインターフェースのリクエストには、7日間有効なトークンを使用する必要があります。失効後は403エラーが返されますので、この場合は再度ログインして取得する必要があります。

  • newDeviceKey:trueの場合、現在のデバイスがプラットフォームの一元管理対象に含まれていないこと意味しますので、デバイス登録の操作を行う必要があります。

(2)デバイスの登録:登録を行うには、最初にHttpApiClient.register()インターフェースをリクエストし、登録が完了した後にデバイスと登録者グループを結合するためにHttpApiClient.bindDefaultGroup()をリクエストする必要があります(以降の登録者データの配信管理のため)。2つのメソッドはHttpApiClient.register()メソッドを適用することで完了し、デバイス名、デバイスの場所、アクセスコントロールの入口と出口の方向などのパラメーターを受け渡す必要があります。

  • device ldid:プラットフォーム上のデバイスの一意の識別コードであり、デバイスを区別するために使用されます。

  • companyId:デバイスに対応する企業IDであり、各企業には複数の登録者グループがあります。

オブジェクトモデルの同期化戦略

オブジェクトモデル(TSL)に関する機能は、SenseLink2.3.0以降からサポートしています。これらの機能を使用する前に、サーバーのバージョン番号を特定する必要があります。サーバーがこれらの機能をサポートしていれば、予期しない例外が発生すること無くオブジェクトモデルを同期化することができます。 この操作は構成の同期化の前にセットする必要があり、フローチャートは以下の図の通りです。

(1)オブジェクトモデルに関する機能がサーバーによってサポートされているかどうかを判断するために、HttpApiClient.getServerVersion()を呼び出して、現在接続されているサーバーのバージョン番号を取得します。サーバーのバージョン番号が2.3.0以上であれば、これらの機能はサポートされていますので、次の操作に進むことができます。そうでない場合は(5)まで進んでください。

(2)ローカルオブジェクトモデルのMD5を計算し、入力パラメーターとしてHttpApiClient.checkTslExist()を呼び出して、フラグのゾーンビットを取得すると同時にクラウド上にローカルオブジェクトモデルが存在するかどうかをチェックします。flag==1の場合は、オブジェクトモデルがすでに存在していることを意味しますので、アップロードする必要はありません。そうでない場合はHttpApiClient.uploadTsl()を呼び出してオブジェクトモデルをアップロードします。

(3)HttpApiClient.checkTslLanguageExist(language)を呼び出します(zh:簡体字中国語、zh-tw:繁体字中国語、en:英語)。クラウド上に対応する言語パッケージが存在するかどうかをチェックし、クラウドの言語パッケージのゾーンビットとMD5を取得します。flag==1であり、かつクラウドの言語パッケージのMD5とローカルの言語パッケージのMD5が一致している場合は、言語パッケージがすでに存在しているということを意味しますので、アップロードする必要はありません。そうでない場合は、HttpApiClient.uploadTslLanguage()を呼び出して言語パッケージをアップロードします。

(4)言語パッケージが複数ある場合は、(3)のステップを繰り返します。

(5)構成の同期化に関する操作を行います。

デバイス構成の同期化戦略

デバイスの構成パラメーターは、2つの方法で設定することができます:UIインターフェースを介した設定と、SenseLinkクラウドを介した設定と発行です。通信の簡単な説明は以下の図の通りです。

(1)ユーザーが設定ページから構成を変更した後に、システムの設定モジュールが変更された構成パラメーターをバックグラウンドにアップロードし、最終的に構成の変更を送信します。

(2)バックグラウンドで構成が変更される際に、MQTTを介して構成変更のプッシュを送信します。通知を受信するとシステムの設定モジュールはHTTPを介して最新のサーバー構成を取得してデバイスの構成パラメーターを更新し、最終的に構成の変更を送信します。

(3)デバイス構成がバックグラウンドでリセットされると、MQTTを介してデフォルト構成の復元のプッシュを送信します。通知を受信するとシステム設定モジュールは全ての構成をリセットし、構成のリセットをバックグラウンドにアップロードして最終的に構成の変更を送信します。

登録者データの同期化戦略

登録者データの同期化とは企業の対応する登録者データをデバイス側がプラットフォーム側から取得することを意味し、データには主に登録者の基本情報と認証に必要な顔写真ライブラリが含まれます。データの同期化の通信プロセスの簡単な説明は次の通りです。

(1)デバイスのログインが完了し、Mqtt Brokerとの長距離のMqtt通信が確立された後に、「デバイスの登録者グループ変更Topic」へアクティブにサブスクライブする必要があります。サブスクライブの完了後、ただちにメッセージのプッシュを受信し、デバイスに属する全ての登録者グループの情報を取得することができます(キー項目は登録者グループのid)。Topicへのサブスクライブの解除は、データ受信後に行うことができます。

(2)(1)で全ての登録者グループのidが取得できたら、続けて「単一登録者グループ内の、全登録者データTopic」にサブスクライブし、サブスクライブが完了したら当該登録者グループの全ての登録者情報を取得することができます(キー項目はuser_idとimage_url)。Topicへのサブスクライブの解除は全グループの登録者情報の受信後に行うことができます。

(3)(2)で取得した user_idとimage_urlによって、RESTFulインターフェースを介して詳細な登録者情報とアバターを取得することができます。全ての登録者データを取得するには、このステップを繰り返す必要があります。

(4)登録者データの最初の取得後に、「単一の登録者グループ内の登録データ変更のTopic」にサブスクライブする必要があります。サブスクライブの完了後、ただちに登録者のインクリメントリストと変更タイプが返されますので、変更タイプに応じてデータを処理する必要があります。

バージョン

改訂日

改訂内容

v1.1.0

2020/7/16

初稿

v1.2.1

2020/11/10

登録者データの同期化の使用法についての紹介を追加

v2.1.0

2021/04/30

用語を修正

{
  "engineVersion": "0.0.1",//エンジンのバージョン
  "modelVersion": "0.0.1", //モデルのバージョン
  "deviceType": "sps", // デバイスのタイプ
  "properties": [/*... */], // 機能の設定項目
  "status": [/*...*/]// デバイスの周辺機器の状態
}
{
  "properties": [{
    "name": "group-name",
    "fields": [{ // 設定項目集
      "key": { // 設定項目の名前の記述
        "name": "product_customer", // 名前
        "desc": "vendor-customer" // 名前を記述するために使用され、実用的な目的はありません
      },
      "value": {} // 設定項目の任意の値の記述
      ]
   }]
}
{
  "versionInfo": {
    "version": "0.0.1",
    "log": "",
    "updated": "2020-04-21 12:00:00"
  },
  "common": {
    "modelVersion": "Device model version"
  },
  "deviceTypes": {
    "sps": "SensePass"
  },
  "groups": {
    "general": "General Settings"
  },
  "fields": {
    "identify_mode": "identify_mode"
  },
  "values": {
    "enable": "Enable",
    "disable": "Disable"
  },
  "status": {
    "door_status": "Magnetism Status"
  }
}
{
  "engineVersion": "0.0.1",//エンジンのバージョン
  "modelVersion": "0.0.1", //モデルのバージョン
  "deviceType": "sps",
  "properties": [{
    "name": "features",
    "fields": [{
      "key": {
        "name": "identify_mode",
        "desc": "Enabled State"
      },
      "value": {
        "required": true, // 必須であるか否か。設定されていない場合、デフォルトは任意です。
        "type": "int", //データのタイプ、numeric、boolean、または string を設定する必要があります。
        "editable": true, // 編集可能であるか否か。設定されていない場合、デフォルトは編集不可です。
        /*
        ** UI のコンポーネントは次のタイプから設定する必要があります
        *** ナンバーピッカー:number
        *** ドロップダウンボックス:select
        *** 複数選択ボックス:checkbox
        *** ラジオボタン:radio
        *** タイムピッカー:date
        *** 1行のテキスト入力:text
        *** 複数行のテキスト入力:textarea
        *** 画像のアップロードと表示:image
        *** デフォルトは text です。
        */
        "ui": "select",
        "ranges": [{
          "min": 1,
          "max": 2,
          "enable": "{open_way}==2", //js expression string または boolean 値です。設定されていない場合はデフォルトで有効です。中括弧内のフィールドは差し替えられる値を示しています(open_wayの値が2の場合、式は"2==2"と解析されます)。
          "default": 1.5
        },{
          "min": 3,
          "max": 4,
          "enable": "{open_way}==3",//js expression stringまたはBoolean値です。設定されていない場合はデフォルトで有効です。
          "default": 3.5
        }],
        "step": 0.5,//値のみに対するステップのサイズです。
        "precision": 1,//精密さ。小数位の正確な数、非負整数を示し、数値に対してのみ有効であり、任意です。
        "mult": true, //複数選択か否か、任意。設定されていない場合、引渡されるパラメーターはデフォルトで単一値です。複数値はドロップダウンと複数選択ボックスに対してのみ有効です。
        "enable": "{open_way}==1", // js expression stringまたはboolean値であり、任意です。リンケージ制御によるフィールドの表示・非表示を示します。enableプロパティが設定されていない場合はデフォルトで有効です。
        "size": 20, // 文字列の長さ、任意です。stringとimage base64に対してのみ有効です。
        "timeFormat": "yyyy-MM-dd HH:mm:ss", //uiがdateの場合、日付形式を設定する必要があります。hhは12時間を意味し、HHは24時間を意味します。
        "options": [{
          "value": 0,
          "name": "off",
          "enable": "{open_way}==2", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
        }, {
          "value": 1,
          "name": "on", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
          "enable": "{open_way}==3"
        }],
        //watch: ステータスのlisten状態であることを意味します。
        /*
        ** 以下の例は、現在のフィールドの値がuse_modeに関連していることを意味します。
        ** use_modeが変更されると、現在のフィールドの値は式が実行された後の値になります "{use_mode}==2?1.5:{use_mode}==1?2:{recognition_distance}"
        */
        "watch":{
          "use_mode": "{use_mode}==2?1.5:{use_mode}==1?2:{recognition_distance}"
        }
      },
    }]
  }],
  "status": [{
    "name": "wifi",
    "enable": true, // js expression stringまたはboolean値です。このフィールドの表示条件を制御します。enableプロパティが設定されていない場合はデフォルトで有効です。
    "options": [{
      "value": 0,
      "name": "off",
      "enable": "{open_way}==2", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
    },{
      "value": 1,
      "name": "on",
      "enable": "{open_way}==1", // js expression stringまたはboolean値です。trueを返し、これは選択された値が候補項目で使用可能であることを意味します。enableプロパティが設定されていない場合はデフォルトで有効です。
    }],
  }]
}
// 初期化   
LinkSDKHelper.getInstance().init(“https://link.japancv.co.jp/sl/”, this)
         .setConnectTimeout(10 * 1000)
         .setReadTimeout(30 * 1000)
         .setWriteTimeout(10 * 1000)
         .setLanguage(LinkSDKHelper.LanguageTypeEnum.ZH)  // サーバーから返される情報の言語を設定します
         .addInterceptor(new ResponseInterceptor())  // インターセプターを設定します
         .setDebug(true);
    // パラメーターエンティティクラス
    RecordParameter recordParameter = new RecordParameter();
    recordParameter.setUserId(2547);
    recordParameter.setMode(2);
    recordParameter.setSignTime((int) (System.currentTimeMillis() / 1000));
    recordParameter.setType(1);
    recordParameter.setInTime(0);
    recordParameter.setEntryMode(1);
    Bitmap bitmap = BitmapFactory.decodeStream(mAppContext.getAssets().open("test.jpg"));
    recordParameter.setUsername("testUserName");
    // 誤ったbase64 文字列をアップロードするとエラーが発生します
    recordParameter.setSignBgAvatar(Base64Utils.bitmapToBase64(bitmap));
    recordParameter.setSignAvatar(Base64Utils.bitmapToBase64(bitmap));
    recordParameter.setDocPhoto(Base64Utils.bitmapToBase64(bitmap));
    recordParameter.setIcNumber("235113");
    recordParameter.setIdNumber("460003199809086744");

    // 特定のリクエストを実行するためにカプセル化されたメソッドの呼び出します。結果はリクエスト結果の統合されたラッパークラスを指します。
    Result<RecordResult> recordResultResult = HttpApiClient.uploadRecord(recordParameter);
    if(recordResultResult.isSuccess()){
        // リクエスト結果データの取得と処理です。RecordResult は、リクエスト結果データのエンティティクラスを指します。
            RecordResult body = recordResultResult.getBody(RecordResult.class);
        // todo: 具体的な操作の実行。
  } else {
          // リクエストの例外です。詳細についてはAPIのドキュメントをご参照ください
  }
}
// リクエストパラメーター
// 同期化メソッドの呼び出しです。ワークスレッドで実行する必要があります
Result<LoginResult> loginResult = HttpApiClient.login(
                                  "account", "password", "SPS", AppUtils.getAndroidId(ContextUtils.getContext()));
int userId = 5;
Result result = HttpApiClient.getUserInfo(userId);
MqttApiClient.connectMqtt(new IMqttActionListener() {

      @Override
      public void onSuccess(IMqttToken iMqttToken) {
        // 接続成功
      }

      @Override
      public void onFailure(IMqttToken iMqttToken, Throwable throwable) {
        // 接続失敗
      }

    }, new IConnectionLost() {

      @Override
      public void onConnectionLost(Throwable cause) {
               // 接続が切断されました
      }
});
    // 登録者グループ変更にサブスクライブします
    MqttApiClient.registerGroupChangeListener(new MessageCallback() {

       @Override
       public void success(MqttMessage msg) {

                 // json データがプッシュメッセージの本文です。
                  String json = new String(msg.getPayload());
              // バックグラウンドでデバイスを削除し、空の文字列を処理せずにプッシュします。
            if (TextUtils.isEmpty(json)) {
                    return;
            }

            // データを取得します。Group classはメッセージデータに対応するエンティティクラスです。
            Pair<List<Group>, Boolean> pushGroupList =
                                          DataConverter.convertJsonToGroupList(json);
            // 具体的な業務に従ってデータを処理します
         }

       @Override
       public void error(int code, String msg, Throwable throwable) {
                         // サブスクリプト例外/メッセージプッシュ例外
       }
    });
    MqttApiClient.unRegisterGroupChangeListener();

LinkSDKHelper

SenseLink RESTfulインターフェースとMqttメッセージプッシュ仕組みをカプセル化

機能類の説明

LinkSDKHelper

LinkSDKを初期化し、ネットワークリクエストパラメータを設定

メンバー関数の説明

boolean isCAVerify()

CA Verificationかを取得

パラメータ

なし

戻り値

例外

なし

int getConnectTimeout()

接続タイムアウトを取得

パラメータ

なし

戻り値

接続タイムアウト(ミリ秒)

例外

なし

int getReadTimeout()

読み取りタイムアウトを取得

パラメータ

なし

戻り値

読み込みタイムアウト(ミリ秒)

例外

なし

int getWriteTimeout()

書き込みタイムアウトを取得

パラメータ

なし

戻り値

書き込みタイムアウト(ミリ秒)

例外

なし

LinkSDKHelper addInterceptor(Interceptor interceptor)

インターセプターを追加

パラメータ

戻り値

Current Object

例外

なし

LanguageTypeEnum getLanguageType()

言語タイプを取得

パラメータ

なし

戻り値

LanguageTypeEnum

例外

なし

LinkSDKHelper init(String url,Context context)

初期化

パラメータ

戻り値

Current Object

例外

なし

LinkSDKHelper setUrl(String url)

URLを設定

パラメータ

戻り値

Current Object

例外

なし

LinkSDKHelper setCAVerify(boolean caVerify)

CA Verificationを設定

パラメータ

戻り値

Current Object

例外

なし

LinkSDKHelper setConnectTimeout(int connectTimeout)

接続タイムアウトを設定

パラメータ

戻り値

Current Object

例外

なし

LinkSDKHelper setReadTimeout(int readTimeout)

読み取りタイムアウトを設定

パラメータ

戻り値

Current Object

例外

なし

LinkSDKHelper setWriteTimeout(int writeTimeout)

書き込みタイムアウトを設定

パラメータ

戻り値

Current Object

例外

なし

LinkSDKHelper setInterceptorList(List interceptorList)

BatchAddインターセプター

パラメータ

戻り値

Current Object

例外

なし

List getInterceptorList()

インターセプターリストを取得

パラメータ

なし

戻り値

インターセプターリスト

例外

なし

LinkSDKHelper setLanguage(LanguageTypeEnum type)

言語タイプを設定

パラメータ

戻り値

Current Object

例外

なし

String getUrl()

URLを取得

パラメータ

なし

戻り値

サーバアドレス

例外

なし

LinkSDKHelper addInterceptor(Interceptor interceptor)

インターセプターを追加

2.0.0

LanguageTypeEnum getLanguageType()

言語種類を取得

2.0.0

LinkSDKHelper init(String url,Context context)

初期化

2.0.0

LinkSDKHelper setUrl(String url)

URLを設定

2.0.0

LinkSDKHelper setCAVerify(boolean caVerify)

CA Verificationを設定

2.0.0

LinkSDKHelper setConnectTimeout(int connectTimeout)

接続タイムアウトを設定

2.0.0

LinkSDKHelper setReadTimeout(int readTimeout)

読み取りタイムアウトを設定

2.0.0

LinkSDKHelper setWriteTimeout(int writeTimeout)

書き込みタイムアウトを設定

2.0.0

LinkSDKHelper setInterceptorList(List interceptorList)

インターセプターをバッチ追加

2.0.0

List getInterceptorList()

インターセプターリストを取得

2.0.0

LinkSDKHelper setLanguage(LanguageTypeEnum type)

言語種類を設定

2.0.0

String getUrl()

URLを取得

2.0.0

メンバー関数

説明

導入バージョン

boolean isCAVerify()

CA Verificationかを取得

2.0.0

int getConnectTimeout()

接続タイムアウトを取得

2.0.0

int getReadTimeout()

読み取りタイムアウトを取得

2.0.0

int getWriteTimeout()

書き込みタイムアウトを取得

戻り値

説明

導入バージョン

true

全てのネットワーク接続でCA証明書を検証する

2.0.0

false

全てのネットワーク接続でCA証明書を検証しない

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

interceptor

Interceptor

インターセプター

okhttpインターセプター

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

url

String

サーバアドレス

なし

2.0.0

context

Context

コンテクスト

なし

パラメータ名

Type

説明

備考

導入バージョン

url

String

サーバアドレス

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

caVerify

boolean

CA Verificationを設定

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

connectTimeout

int

接続タイムアウト

ミリ秒

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

readTimeout

int

読み取りタイムアウト

ミリ秒

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

writeTimeout

int

書き込みタイムアウト

ミリ秒

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

interceptorList

List

インターセプター List

Okhttpインターセプター

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

type

LanguageTypeEnum

言語タイプ

なし

2.0.0

2.0.0

2.0.0

サーマルイメージングシステム

通行管理において利用されるサーモグラフィーの属性を抽出したもので、サーモグラフィーのプレビューとデータのリコールを取得し、ライフスタイルの管理やステータス監視など、ホットプラグ後の自動接続をサポート

機能類の説明

TemperatureCameraFactory

サーマルイメージングシステムの異なるインスタンスを取得

メンバー関数の説明

ITemperatureCamera getTemperatureCamera(CameraType type)

サーマルイメージングシステムを取得

パラメータ

戻り値

ITemperatureCamera

Current Type

例外

なし

ITemperatureCamera

サーマルイメージグングシステムを操作

メンバー関数の説明

boolean matrixTemperature(float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h, float[] tempArray)

温度のバッチ変換

パラメータ

戻り値

例外

なし

float getCentigradeFromTemperatureData(float temperatureData)

温度データからセ氏温度数値を取得

パラメータ

戻り値

セ氏温度数値

例外

なし

float getCameraBodyTemperature()

サーモグラフィ本体の温度を取得

パラメータ

なし

戻り値

カメラ本体温度

例外

なし

void addTemperaturePreviewDataCallback(ITemperaturePreviewDataCallback callback)

サーマルイメージングシステムのプレビューデータコールバックを追加

パラメータ

戻り値

なし

例外

なし

void initCamera(Context context)

サーマルイメージングシステムを初期化

パラメータ

戻り値

なし

例外

なし

void releaseCamera()

サーマルイメージングシステムを解放

パラメータ

なし

戻り値

なし

例外

なし

void removeTemperaturePreviewDataCallback(ITemperaturePreviewDataCallback callback)

サーマルイメージングシステムのプレビューデータのコールバックを削除

パラメータ

戻り値

なし

例外

なし

void startPreview(TextureView textureView)

プレビューを開始

パラメータ

戻り値

なし

例外

なし

void stopPreview()

サーマルイメージングシステムのプレビューを停止

パラメータ

なし

戻り値

なし

例外

なし

void setConfig(TemperatureCameraConfig config)

サーマルイメージングシステムを構成

パラメータ

戻り値

なし

例外

なし

void setAutoShutterEnable(boolean enable)

自動シャッターオンを設定

パラメータ

戻り値

なし

例外

なし

void shutter()

シャッターをオン

パラメータ

なし

戻り値

なし

例外

なし

エンティティの説明

ITemperaturePreviewDataCallback

プレビューデータのコールバック

メソッドの説明

void onTemperaturePreviewData(Bitmap temperatureBitmap, float[] temperatureValue, int width, int height)

温度データプレビューのコールバック。サーマルイメージングシステムは物理方向と同じ画像方向を出力。例:顔写真は縦方向になります。

パラメータ

TemperatureCameraConfig

サーマルイメージングを構成

プロパティの説明

CameraType

サーマルイメージングシステムの型(列挙型)

プロパティの説明

2.0.0

void [initCamera](Context context)

サーマルイメージングシステムを初期化

2.0.0

void [releaseCamera]()

サーマルイメージングシステムを解放

2.0.0

void [removeTemperaturePreviewDataCallback](ITemperaturePreviewDataCallback callback)

サーマルイメージングシステムのプレビューデータコールバックを削除

2.0.0

void [startPreview](TextureView textureView)

サーマルイメージングシステムのプレビューを開始

2.0.0

void [stopPreview]()

サーマルイメージングシステムのプレビューを停止

2.0.0

void [setConfig](TemperatureCameraConfig config)

サーマルイメージングシステムを構成

2.0.0

void [setAutoShutterEnable](boolean enable)

自動シャッターオンを設定

2.0.0

void [shutter]()

シャッターをオン

2.0.0

y16H

int

オリジナル温度図の高さ

なし

2.0.0

distance

float

実際の温度測定距離

なし

2.0.0

x

int

変換する開始x座標

なし

2.0.0

y

int

変換する開始y座標

なし

2.0.0

w

int

変換する幅

なし

2.0.0

h

int

変換する高さ

なし

2.0.0

tempArray

float[]

変換された温度配列で、サイズはw*h

なし

2.0.0

width

int

温度データの幅

なし

2.0.0

height

int

温度データの高さ

なし

2.0.0

transmittance

float

大気通過率

なし

2.0.0

emissity

float

放射率

なし

2.0.0

なし

2.0.0

メンバー関数

説明

導入バージョン

ITemperatureCamera getTemperatureCamera(CameraType type)

サーマルイメージングシステムのインスタンスを取得

2.0.0

パラメータ名

型

説明

備考

導入バージョン

type

CameraType

サーマルイメージングシステムのタイプ

なし

2.0.0

メンバー関数

説明

導入バージョン

boolean [matrixTemperature](float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h, float[] tempArray)

温度のバッチ変換

2.0.0

float [getCentigradeFromTemperatureData](float temperatureData)

温度データから実際温度を計算

2.0.0

float [getCameraBodyTemperature]()

サーモグラフィー本体の温度を取得

2.0.0

void [addTemperaturePreviewDataCallback](ITemperaturePreviewDataCallback callback)

パラメータ名

型

説明

備考

導入バージョン

y16Frame

float[]

オリジナル温度図

なし

2.0.0

y16W

int

オリジナル温度図の幅

なし

戻り値

説明

導入バージョン

true

変換されました

2.0.0

false

変換されませんでした

2.0.0

パラメータ名

型

説明

備考

導入バージョン

temperatureData

float

エネルギー値など各ピクセルでの温度データ

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

callback

ITemperaturePreviewDataCallback

プレビューデータコールバック

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

context

Context

Context

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

callback

ITemperaturePreviewDataCallback

サーマルイメージングシステムのプレビューデータのコールバック

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

textureView

TextureView

Androidシステムネイティブ(データプロセッシング用)

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

config

TemperatureCameraConfig

サーマルイメージングシステム構成

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

enable

boolean

自動シャッターオン設定

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

temperatureBitmap

Bitmap

温度のRGB画像

なし

2.0.0

temperatureValue

float[]

温度データ

なし

Member

型

説明

備考

導入バージョン

environmentTemperature

float

環境温度

なし

2.0.0

distance

float

温度測定の距離

なし

Member

説明

備考

導入バージョン

IRAY

IRAY

なし

2.0.0

GUIDE120

GUIDE120

なし

2.0.0

GUIDE256

サーマルイメージングシステムのプレビューデータコールバックを追加

2.0.0

2.0.0

2.0.0

GUIDE256

カメラ

カメラへクイックアクセスするインスタンスや、プレビューデータを取得するインターフェースを提供します。カメラのライフサイクルを管理するメソッドがカプセル化されており、カメラステータスの監視がサポートされます。

機能類の説明

CameraManager

カメラを操作するメインメソッド

メンバー関数の説明

CameraManager addPreviewCallbackWithBuffer(PreviewCallback callback)

プレビューデータコールバックを追加

パラメータ

戻り値

Current Object

例外

なし

CameraManager removePreviewCallbackWithBuffer(PreviewCallback callback)

プレビューデータコールバックを削除

パラメータ

戻り値

Current Object

例外

なし

CameraManager getInstance(int cameraId)

カメラインスタンスを取得

パラメータ

戻り値

Current Object

例外

なし

CameraManager setDisplayOrientation(int degree)

プレビューの角度を設定。0,90,180,270を選択可能

パラメータ

戻り値

Current Object

例外

なし

CameraManager setPreviewTexture(SurfaceTexture texture)

プレビューテクスチャーを設定

パラメータ

戻り値

Current Object

例外

なし

List getSupportedPreviewSizes()

サポートされるプレビューサイズリストを取得

パラメータ

なし

戻り値

例外

なし

void initParameters(int width, int height, int degree, SurfaceTexture surfaceTexture)

カメラの初期化

パラメータ

戻り値

なし

例外

なし

void openCamera(Context context)

カメラをオンにする

パラメータ

戻り値

なし

例外

なし

void releaseCamera()

カメラを解放

パラメータ

なし

戻り値

なし

例外

なし

void startPreview()

カメラプレビューを開始

パラメータ

なし

戻り値

なし

例外

なし

void stopPreview()

カメラプレビューを停止

パラメータ

なし

戻り値

なし

例外

なし

機能類の説明

RgbAndIrCameraManager

(RGBとRGが結合された)ビデオストリームの出力のために、カメラを操作する主要メソッド

メンバー関数の説明

void addPreviewCallbackWithBuffer(IRgbAndIrPreviewCallback callback)

プレビューデータコールバックを追加

パラメータ

戻り値

なし

例外

なし

void removePreviewCallbackWithBuffer(IRgbAndIrPreviewCallback callback)

プレビューデータコールバックを削除

パラメータ

戻り値

なし

例外

なし

RgbAndIrCameraManager getInstance()

カメラインスタンスを取得

パラメータ

なし

戻り値

Current object

例外

なし

List getSupportedPreviewSizes(CameraType cameraType)

カメラがサポートするプレビューサイズを取得

パラメータ

戻り値

例外

なし

void initParameters(int width, int height, int degree,SurfaceTexture irSurfaceTexture, SurfaceTexture rgbSurfaceTexture, CameraType cameraType)

カメラの初期化

パラメータ

戻り値

なし

例外

なし

void openCamera(Context context,CameraType cameraType)

カメラをオンに

パラメータ

戻り値

なし

例外

なし

void releaseCamera(CameraType cameraType)

カメラを解放

パラメータ

戻り値

なし

例外

なし

void startPreview(CameraType cameraType)

プレビューを開始

パラメータ

戻り値

なし

例外

なし

void stopPreview(CameraType cameraType)

カメラプレビューを終了

パラメータ

戻り値

なし

例外

なし

void resetPreviewSize(ScaleManager.Size size,CameraType cameraType)

カメラがサポートするプレビューサイズをリセット

パラメータ

戻り値

なし

例外

なし

エンティティの説明

CameraType

パラメータ説明

CameraManager setPreviewTexture(SurfaceTexture texture)

プレビューテクスチャーを設定

2.0.0

List getSupportedPreviewSizes()

カメラにサポートされるプレビューサイズを取得

2.0.0

void initParameters(int width, int height, int degree, SurfaceTexture surfaceTexture)

カメラを初期化

2.0.0

void openCamera(Context context)

カメラをオンに

2.0.0

void releaseCamera()

カメラを解放

2.0.0

void startPreview()

プレビューを開始

2.0.0

void stopPreview()

プレビューを終了

2.0.0

degree

int

プレビューの角度:0,90,180,270

なし

2.0.0

surfaceTexture

SurfaceTexture

プレビューのテクスチャー

なし

2.0.0

2.1.0

void initParameters(int width, int height, int degree , SurfaceTexture irSurfaceTexture, SurfaceTexture rgbSurfaceTexture, CameraType cameraType)

カメラの初期化

2.1.0

void openCamera(Context context,CameraType cameraType)

カメラをオンに

2.1.0

void releaseCamera(CameraType cameraType)

カメラを解放

2.1.0

void startPreview(CameraType cameraType)

プレビューを開始

2.1.0

void stopPreview(CameraType cameraType)

プレビューを終了

2.1.0

void resetPreviewSize(ScaleManager.Size size,CameraType cameraType)

カメラがサポートするプレビューサイズをリセット

2.1.0

degree

int

プレビューの角度: 0,90,180,270

なし

2.1.0

irSurfaceTexture

SurfaceTexture

IRサーフェス

なし

2.1.0

rgbSurfaceTexture

SurfaceTexture

RGBサーフェス

なし

2.1.0

cameraType

CameraType

カメラタイプ

なし

2.1.0

なし

2.1.0

メンバー関数

説明

導入バージョン

CameraManager removePreviewCallbackWithBuffer(PreviewCallback callback)

プレビューデータコールバックを削除

2.0.0

CameraManager addPreviewCallbackWithBuffer(PreviewCallback callback)

プレビューデータコールバックを追加

2.0.0

CameraManager getInstance(int cameraId)

カメラインスタンスを取得

2.0.0

CameraManager setDisplayOrientation(int degree)

プレビュー角度を設定

パラメータ名

型

説明

備考

導入バージョン

callback

PreviewCallback

プレビューデータコールバック

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

callback

PreviewCallback

プレビューデータコールバック

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

cameraId

int

カメラインデックス

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

degree

int

角度は0,90,180,270を選択可能

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

texture

SurfaceTexture

プレビューテクスチャー

なし

2.0.0

戻り値

説明

導入バージョン

List

サポートされるプレビューサイズリスト

2.0.0

パラメータ名

型

説明

備考

導入バージョン

width

int

プレビューの幅

なし

2.0.0

height

int

プレビューの高さ

なし

パラメータ名

型

説明

備考

導入バージョン

context

Context

Context

なし

2.0.0

メンバー関数

説明

導入バージョン

void removePreviewCallbackWithBuffer(IRgbAndIrPreviewCallback callback)

プレビューデータコールバックを削除

2.1.0

void addPreviewCallbackWithBuffer(IRgbAndIrPreviewCallback callback)

プレビューデータコールバックを追加

2.1.0

RgbAndIrCameraManager getInstance()

カメラインスタンスを取得

2.1.0

List getSupportedPreviewSizes(CameraType cameraType)

パラメータ名

型

説明

備考

導入バージョン

callback

IRgbAndIrPreviewCallback

プレビューデータコールバック

なし

2.1.0

パラメータ名

型

説明

備考

導入バージョン

callback

IRgbAndIrPreviewCallback

プレビューデータコールバック

なし

2.1.0

パラメータ名

型

説明

備考

導入バージョン

cameraType

CameraType

カメラタイプ

なし

2.1.0

戻り値

説明

導入バージョン

List

プレビューサイズリスト

2.1.0

パラメータ名

型

説明

備考

導入バージョン

width

int

プレビューの幅

なし

2.1.0

height

int

プレビューの高さ

なし

パラメータ名

型

説明

備考

導入バージョン

context

Context

コンテクスト

なし

2.1.0

cameraType

CameraType

カメラタイプ

なし

パラメータ名

型

説明

備考

導入バージョン

cameraType

CameraType

カメラタイプ

なし

2.1.0

パラメータ名

型

説明

備考

導入バージョン

cameraType

CameraType

カメラタイプ

なし

2.1.0

パラメータ名

型

説明

備考

導入バージョン

cameraType

CameraType

カメラタイプ

なし

2.1.0

パラメータ名

型

説明

備考

導入バージョン

size

ScaleManager.Size

プレビューサイズ

なし

2.1.0

cameraType

CameraType

カメラタイプ

なし

メンバー

説明

備考

導入バージョン

RGB

1:RGBカメラ

なし

2.1.0

IR

2:IRカメラ

なし

2.1.0

RGB_IR

2.0.0

2.0.0

カメラがサポートするプレビューサイズを取得

2.1.0

2.1.0

2.1.0

3:RGBとIRカメラ

HttpApiClient

HTTPインターフェースの実装

HttpApiClient

メンバー関数

説明

導入バージョン

byte[] getImage(int type, String imageId)

画像データを取得

2.0.0

メンバー関数の説明

byte[] getImage(int type, String imageId)

図データを取得

パラメータ

戻り値

画像データ

例外

なし

ConnectConfigEntity getConnectConfigEntity()

現在接続構成を取得

パラメータ

なし

戻り値

ConnectConfigEntity

例外

なし

Result alarmReport(AlarmReportParameter reportParameter)

アラートをレポート

パラメータ

戻り値

Result

例外

なし

Result bindDefaultGroup()

デフォルトグループをバンドル

パラメータ

なし

戻り値

Result

例外

なし

Result checkPasswordUseLoginInterface(String password)

パスワードを検証

パラメータ

戻り値

Result

例外

なし

Result checkTslExist(String md5)

Tslが存在するかをチェック

パラメータ

戻り値

Result<TslCheckExistResult>

例外

なし

Result checkTslLanguageExist(String lang)

Tslの言語パッケージが存在するかをチェック

パラメータ

戻り値

Result<TslLanguageCheckExistResult>

例外

なし

Result faceSearch(FaceSearchParameter searchParameter)

サーバの識別

パラメータ

戻り値

Result<FaceSearchResult>

例外

なし

Result> getGroupIndexList()

当該デバイスにバンドルされるグループインデックスリストを取得

パラメータ

なし

戻り値

Result<GroupIndex>

例外

なし

Result> getUserIndexList(int groupId)

グループでのユーザーインデックスリストを取得

パラメータ

なし

戻り値

Result>

例外

なし

Result> getUserInfoList(UserInfoParameter parameter)

ユーザー情報リストを取得

パラメータ

戻り値

Result>

例外

なし

Result getServiceConfigJson()

サーバ構成を取得

パラメータ

なし

戻り値

Result

例外

なし

Result getAllGroupList()

当該デバイスにバンドされるグループリストを取得

パラメータ

なし

戻り値

Result<DeviceGroups>

例外

なし

Result getDeviceDetailInfo()

デバイスの情報詳細を取得

パラメータ

なし

戻り値

Result<DeviceDetailInfo>

例外

なし

Result getCompanyInfo()

企業情報を取得

パラメータ

なし

戻り値

Result<Company>

例外

なし

Result getUserInfo(long id)

ユーザーの詳細情報を取得

パラメータ

戻り値

Result<UserDetailInfo>

例外

なし

Result getGuestInfo(long id)

ユーザーの詳細情報を取得

パラメータ

戻り値

Result<GuestDetailInfo>

例外

なし

Result getServerVersion()

サーバのバージョンを取得

パラメータ

なし

戻り値

Result<ServerVersion>

例外

なし

Result getPassTimeTable(long timetableId)

アクセスタイムテーブルを取得

パラメータ

戻り値

Result<TimeTable>

例外

なし

void logout()

ログアウト

パラメータ

なし

戻り値

なし

例外

なし

Result identifyQRCode(IdentifyQRCodeParameter parameter)

QRコード認識インターフェース

パラメータ

戻り値

Result<QRResult>

例外

なし

Result login(String account, String password,String identifier, String duid)

デバイスのログイン

パラメータ

戻り値

Result<LoginResult>

例外

なし

Result register( RegisterParameter registerParameter)

デバイスを登録

パラメータ

戻り値

Result<RegisterResult>

例外

なし

Result reportUserStatus(UserStatusParameter userStatusParameter) )

ローカルデータベースでのユーザー異常ステータスをアップロード

パラメータ

戻り値

Result

例外

なし

Result reportUserStatus(UserSyncStatusParameter userSyncStatusParameter)

ローカルデータベースでのユーザー異常ステータスをアップロード

パラメータ

戻り値

Result

例外

なし

void refreshConnectConfig(ConnectConfigEntity connectConfig)

接続構成をリロード

パラメータ

戻り値

なし

例外

なし

Result reportDeviceEvent(DeviceReportEventParamer param)

デバイスイベントをレポート

パラメータ

戻り値

Result

例外

なし

Result uploadRecord(RecordParameter recordParameter)

識別レコードをアップロード

パラメータ

戻り値

Result<RecordResult>

例外

なし

Result uploadDeviceVersionInfo(DeviceVersionInfoParameter deviceInfoParameter)

デバイスバージョンをアップロード

パラメータ

戻り値

Result

例外

なし

Result uploadConfig(String deviceConfigKey, Object config)

構成をアップロード

パラメータ

戻り値

Result

例外

なし

Result uploadTsl(TslUploadParameter parameter))

Tslをアップロード

パラメータ

戻り値

Result

例外

なし

Result uploadTslLanguage(TslLanguageUploadParameter parameter)

Tsl言語パッケージをアップロード

パラメータ

戻り値

Result

例外

なし

identifier

String

デバイス識別子

なし

2.0.0

duid

String

デバイスsn

なし

2.0.0

ConnectConfigEntity getConnectConfigEntity()

現在接続構成を取得

2.0.0

Result alarmReport(AlarmReportParameter reportParameter)

アラームをレポート

2.0.0

Result bindDefaultGroup()

デフォルトグループをバンドル

2.0.0

Result checkPasswordUseLoginInterface(String password)

パスワードを検証

2.0.0

Result<TslCheckExistResult> checkTslExist(String md5)

Tslが存在するかをチェック

2.0.0

Result<TslLanguageCheckExistResult> checkTslLanguageExist(String lang)

Tslの言語パッケージが存在するかをチェック

2.0.0

Result<FaceSearchResult> faceSearch(FaceSearchParameter searchParameter)

サーバの識別

2.0.0

Result> getGroupIndexList()

当該デバイスにバンドルされるグループインデックスリストを取得

2.0.0

Result> getUserIndexList(int groupId)

グループでのユーザーインデックスリストを取得

2.0.0

Result> getUserInfoList(UserInfoParameter parameter)

ユーザー情報リストを取得

2.0.0

Result getServiceConfigJson()

サーバ構成を取得

2.0.0

Result<DeviceGroups> getAllGroupList()

当該デバイスにバンドされるグループリストを取得

2.0.0

Result<DeviceDetailInfo> getDeviceDetailInfo()

デバイスの情報詳細を取得

2.0.0

Result<Company> getCompanyInfo()

企業情報を取得

2.0.0

Result<UserDetailInfo> getUserInfo(long id)

ユーザーの詳細情報を取得

2.0.0

Result<GuestDetailInfo> getGuestInfo(long id)

ビジターの詳細情報を取得

2.0.0

Result<ServerVersion> getServerVersion()

サーババージョンを取得

2.0.0

Result<TimeTable> getPassTimeTable(long timetableId)

アクセスタイムテーブルを取得

2.0.0

void logout()

ログアウト

2.0.0

Result<QRResult> identifyQRCode(IdentifyQRCodeParameter parameter)

QRコード認識インターフェース

2.0.0

Result<LoginResult> login(String account, String password,String identifier, String duid)

デバイスをログイン

2.0.0

Result<RegisterResult> register( RegisterParameter registerParameter)

デバイスを登録

2.0.0

Result reportUserStatus(UserStatusParameter userStatusParameter)

ローカルデータベースでのユーザー異常ステータスをアップロード

2.0.0

Result reportUserStatus(UserSyncStatusParameter userSyncStatusParameter)

ローカルデータベースでのユーザー異常ステータスをアップロード

2.0.0

void refreshConnectConfig(ConnectConfigEntity connectConfig)

接続構成を刷新

2.0.0

Result reportDeviceEvent(DeviceReportEventParamer param)

デバイスイベントをレポート

2.0.0

Result<RecordResult> uploadRecord(RecordParameter recordParameter)

識別レコードをアップロード

2.0.0

Result uploadDeviceVersionInfo(DeviceVersionInfoParameter deviceInfoParameter)

デバイスバージョンをアップロード

2.0.0

Result uploadConfig(String deviceConfigKey, Object config)

構成をアップロード

2.0.0

Result uploadTsl(TslUploadParameter parameter)

Tslをアップロード

2.0.0

Result uploadTslLanguage(TslLanguageUploadParameter parameter)

Tsl言語パッケージをアップロード

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

type

int

画像のタイプ

1:Senselinkでの登録画像

2:認証対象となる画像

2.0.0

imageId

String

画像ID

なし

パラメータ名

Type

説明

備考

導入バージョン

reportParameter

AlarmReportParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

password

String

パスワード

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

md5

String

File md5

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

lang

String

言語

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

searchParameter

FaceSearchParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

パラメータ

UserInfoParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

id

long

ユーザーID

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

id

long

Guest ID

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

timetableId

long

アクセスタイムテーブルID

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

parameter

IdentifyQRCodeParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

account

String

デバイスのログインアカウント

なし

2.0.0

password

String

デバイスのログインパスワード

なし

パラメータ名

Type

説明

備考

導入バージョン

Parameter

RegisterParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

userStatusパラメータ

UserStatusParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

userSyncStatusパラメータ

UserSyncStatusParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

connectConfig

ConnectConfigEntity

構成

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

param

DeviceReportEventParamer

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

recordParameter

RecordParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

deviceInfoParameter

DeviceVersionInfoParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

deviceConfigKey

String

デバイスconfig key

なし

2.0.0

config

Object

config構成

なし

パラメータ名

Type

説明

備考

導入バージョン

parameter

TslUploadParameter

パラメータ

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

parameter

TslLanguageUploadParameter

パラメータ

なし

2.0.0

2.0.0

2.0.0

2.0.0

開発マニュアル

バージョン

改訂日

改訂内容

バージョン1.0.2

2020/4/7

本SDKを適用できるデバイスタイプを追加

バージョン1.0.3

2020/5/12

ドアアクセス機能の紹介を追加

バージョン1.2.0

2020/10/14

顔の温度検知機能の紹介を追加

Thunder SDK開発マニュアル

Thunder SDK(以下、「SDK」)は、AI顔認証アルゴリズムおよびその派生機能をベースにした Android 向けSDKで、JCVインテリジェントハードウェアデバイス(以下、「ハードウェアデバイス」)を実行キャリアとして採用します。生体検知、1:N顔認証、1:1顔認証、顔温度検知、マスク検知、アクセスコントロールなどの機能を迅速に開発するために使用できます。

本ドキュメントは主に開発エンジニアを対象として書かれており、SDKのインテグレーション手順や機能の使用方法を説明しています。

SDKのビジネス機能について

SDKはデバイスのカメラで顔をキャプチャして顔認証を行うといった、オフラインでの顔認証に使用することができます。一般的な流れは次のとおりです。

一般的なプロセスを踏まえると、顔の照合には1対1の場合と1対Nの場合があるため、1:1認証と1:N認証に細分化されます。それぞれ異なるシナリオで使用され、1:1認証は後ほど定義するような1:NでNを1と設定する場合とは異なります。

カメラの呼び出し

カメラに素早くアクセスしてプレビューコールバックデータを取得したり、カメラのライフサイクルを管理するメソッドをカプセル化など、カメラのステータスを監視する機能をサポートしています。

サーマルイメージングシステムの呼び出し

  • 交通現場で使用されるサーマルイメージングシステムの特徴として、サーマルイメージングシステムのプレビューおよびデータのコールバック、ライフサイクルの管理、ステータスの監視、ホットプラグ後の自動接続などが挙げられます。

  • 対応するサーマルイメージングシステムのモデルは、Arrow、Guide120、Guide256です。

1:1認証

  • 「1:1認証」は、「あなたがあなたであること」を証明するプロセスです。具体的には、特定の身元情報をシステムが保持している場合、カメラ画面に映っている人物の顔情報と保存している身元情報が一致するかを判断します。

  • 銀行、携帯キャリアショップでの本人確認や駅・空港、ホテル、インターネットカフェなどで認証が必要な状況など、個人の認証が必要とされるシナリオでよく使われる認証操作です。

1:N認証

「1:N認証」とは、認証対象の顔画像セットをローカルの顔フィーチャーライブラリに登録しておき、カメラが顔情報を取得した際にライブラリ内の顔フィーチャーセットと比較することで、認証結果を導き出します。

  • コミュニティやオフィスビル、学校などでのアクセスコントロールや勤怠確認、複数人を認証する必要がある状況でよく使われます。

マスク検知

「マスク検知」は、カメラでキャプチャした顔情報を解析することで、マスクを着用しているかを迅速に検知します。病院や製造工場、粉塵の多い建設現場など、マスクが必要とされる場面で活用されています。

サーバーサイドの1:N認証

前述した一般的な1:N認証プロセスにおいては、顔の照合はローカルでもリモート(HTTPネットワークリクエスト経由)でも実行可能です。リモートで実行する場合、比較ロジックをユーザー自身が実装する必要があり、本機能の実装には顔認証バックエンドサーバーがあることが前提となります。

ドアアクセス機能

「ドアアクセス機能」は、SDKのドアアクセスデバイスのコントロール機能を指します。ハードウェアデバイスによって、ドアアクセスデバイスのサポート範囲が異なります。対応関係を説明するために、次のように概念を定義します。

  • 「ドアアクセスデバイス」 -ハードウェアデバイスに含まれるハードウェアアクセサリーやハードウェア拡張インターフェースにより、接続して使用できる周辺機器などのすべてのデバイスの総称。

    • ハードウェアアクセサリ:スクリーンバックライト、IRフィルライト、照明センサー、距離センサー、ブザー、ローカルリレー、ラウドスピーカー、強制解体アラートボタンなど。

    • 周辺機器:ドアオープンボタン、消防アラートシグナル、ドアマグネット、ドアベル、アラート、Wiegandカードリーダー、ネットワークリレー、Wiegandドアオープンコントローラーなど。

SDKの「ドアアクセス機能」のサポート範囲は、ハードウェアデバイスによって異なります(次の表ではハードウェアの観点ではなく、SDKでの対応の観点でのみ記載しています)。

本ドキュメントでは、説明のために以下のように定義しています。

  • Passアクセスコントロール機能:PassとThunderシリーズ(上記デバイスモデル)のその他のデバイスで使用されるアクセスコントロール機能のこと。

なお、アクセスコントロール機能の使用について説明する場合、以下のように異なるデバイスにおける違いにご注意ください。

QRコード認証

「QRコード認証」とは、QRコードの内容を解析する機能のことで、QRコードの認証が必要なシナリオで使用されます。SDKには2つのコーデックライブラリZXingとZBarが組み込まれており、使用時に選択できます。

顔の温度検知

「顔の温度検知」とは、顔認証機能と温度検知モジュールを介して、顔および熱力学線図のデータをアルゴリズムにより処理し、顔の温度を取得することです。現在サポートされている温度検知モジュールは、Arrowモジュール、Guide120モジュール、およびGuide256モジュールです。なお顔の温度値は、周囲の温度、モジュールのモデル、使用方法などによって異なる場合がありますのでご注意ください。

SDKに適したデバイスについて

顔カメラによる撮影について

カメラによる撮影について説明するために、次のように定義します。

  • 水平方向の画像: 撮影した写真の幅が、高さよりも広いことを意味します。

  • 垂直方向の画像: 撮影した写真の幅が、高さよりも狭いことを意味します。

  • 画像のミラーリング: カメラ画像において、被写体の実際の移動方向と写真の表示方向が逆になっていることを示します。人が左方向に歩いている場合、プレビュー画面では右に向かって進んでいるように表示されます。

次の表では、特定のデバイスモデルに対応する顔カメラの画像の特性を示します。

アクセス手順

SDKは、.aarパッケージ、.soファイル、アルゴリズムモデルファイル、サンプルプロジェクト、開発ドキュメントを含むzip形式のパッケージファイルとして提供されます。SDKは次の環境で動作します。

インテグレーションの開始

次の図のように、.aarファイルをproject libsフォルダにコピーします。

次の図のように、デバイスタイプに応じて、zipパッケージのmodel fileフォルダ内の対応するモデルファイルを選択します。

zipパッケージ内の対応するモデルファイルを、実際のプロジェクトのassetsおよびmodelフォルダにコピーします。

次の図に示すように、デバイスタイプに応じて、パッケージのso libraryフォルダ内の対応するsoライブラリを選択します。

次に、フォルダ内のsoを/src/main/jniLibsフォルダにコピーします。最終のフォルダ構造は以下の図になります。

build.gradleファイルに次の設定を加えます。

AndroidManifest.xml ファイルに、次のように権限の宣言を追加します。

次のサンプル画像のように、.lic形式のライセンスファイルをassetsフォルダにコピーします(サンプル内には、テストにのみ使用できるデバッグ用のライセンスファイルが提供されています。正式な本番環境用には、別途ライセンスファイルを申請する必要があります)。

サンプルプロジェクト

サンプルプロジェクトは、Android Studioで開くことができます。ドキュメントに従って、aar、model、soやその他のファイルを対応するフォルダにコピーし、PassシリーズやThunderシリーズのハードウェアデバイスでデバッグを実行してください。サンプルプロジェクトは、主に1:N認証、1:1照合、マスク検知、アクセスコントロール、その他の機能の使用方法を示します。

SDKの使用方法

本セクションでは、SDKの主要なAPIとプロセスの使用方法を中心に説明します。

SDKの初期化

SDKを使用する前に、aar、model、so、.licの各ファイルが正しく保存され、設定されていることを確認します。ファイルの準備が完了したら、次の手順で初期化を行います。

アクティベーションは初期化に成功した後に行うことができます。

通常、SDKのアクティベーション成功後は、アプリケーションを終了する前に解放操作を実行する必要はありません。具体的にアプリケーションを再起動する必要がある場合、次のようにアプリケーションの終了時にSDKリソースを解放することができます。

カメラの呼び出し

SDKのCameraTextureViewおよびCameraManagerクラスを使用すると、カメラのライフサイクルや関連するプレビュー操作を簡単に管理することができます。以下は、顔カメラ(RGB)を使用した使い方を紹介した例です。CameraTextureViewは、次のようにレイアウトファイルで使用できます(全画面プレビュー)。

次にカメラの初期化を行います。詳細については、下記コードをご参照ください。プレビュー解像度は1280✕720ピクセルを推奨します。

次のように、カメラのライフサイクルを制御します。

サーマルイメージングシステムの呼び出し

サーモカメラの関連インターフェースを呼び出す前に、サーモカメラのインスタンスを取得してください。SDKではサーマルイメージングシステムの様々なインスタンスを取得するために、次のようにTemperatureCameraFactoryが提供されています。

サーマルイメージングシステムの設定を初期化します。

熱力学線図、および温度データのコールバックを追加します。

サーマルイメージングシステムのステータスを部分的に取得します。

サーマルイメージングシステムのライフサイクルを管理します。

SDKでは上記に加えて、サーマルイメージングシステムを操作するために多数の方法が提供されています。次の操作方法は一例です。

1:N認証の流れ

顔認証のビジネスプロセスには、カメラの管理、顔特徴量ライブラリの作成、生体検知、顔比較、結果の処理などのいくつかのステップがあります。ここでは「1:N認証」を例に、SDKの使用方法を説明します。

顔フィーチャーライブラリの作成

1:N認証では顔フィーチャーを検索するための「データベース」として、顔フィーチャーライブラリが必要です。そのため、処理を開始する前にライブラリを構築する必要があります。SDKには顔フィーチャーライブラリを作成するためのFeatureManagerProxyが用意されており、次のように簡単に利用することができます。

N個の顔フィーチャー(最大は5W)をフィーチャーライブラリに挿入できます。構築が完了したら、人物認証プロセスの際にIdentify Managerは'FeatureManagerProxy'の挿入された顔フィーチャーデータを自動的に取得し、認証を行います。

カメラプレビューの開始

「カメラの呼び出し」を参照して、RGBカメラをオンにします。生体検知が有効になっている場合はIRカメラを再度オンにし、プレビューデータがIdentify Managerに渡されるように、データのプレビューコールバックを次のように変更する必要があります。

Identify Manager の開始

Identify Managerには「1:N」「1:1」および「サーバーサイド1:N」認証処理が組み込まれており、モードを切り替えることで内部の認証ロジックを変更することができます。Identify Manager のモードは次のとおりです。

  • VerifyModeEnum.MODE_1_N: 1:N認証モード。1:N認証処理に対応。

  • VerifyModeEnum.MODE_1_1: 1:1認証モード。1:1認証処理に対応。

  • VerifyModeEnum.MODE_SERVER_1_N: サーバーサイド1:N認証モード。サーバーサイドの1:N認証処理に対応。

使用前に、次のように設定します。

初期設定の完了後、次のように Identify Managerのオンまたはオフを切り替えることで、認証を制御することができます。

認証処理の詳細はパラメーターによって制御することができます。Identify Managerのパラメーターは特定のビジネスシナリオに応じて、次のように個別に設定できます(下記コードアノテーションでは、PassやThunderシリーズと異なるシリーズの注意事項がある場合、適宜読み飛ばしてください)。

認証結果の処理

Identify Managerはコールバックインターフェースにより、認証結果を上位ビジネス層に送信します。上位ビジネス層では、次のようにコールバックインターフェースで結果を処理してください。

結果のコールバックが不要な場合は、次のようにNULLを設定します。

この時点で「1:N認証」プロセスが構築されています。

1:1認証処理

上記に説明したとおり、「1:N認証」処理の場合、Identify ManagerはVerifyModeEnum.MODE_1_Nモードを使用します。顔の「1:1認証」処理の場合、次に示す方法で「1:1認証」モードに切り替える必要があります。

サーバーサイドの1:N認証

リモートサーバー上で認証処理を実行する場合は、Identity Managerの設定を変更して、1:N認証に基づいたサーバーサイド認証を有効にする必要があります。次に、IServerVerifyAction クラスを使用して、認証ロジックを実装します。具体的な使用方法は次のとおりです。

マスク検知

「1:N」「1:1」および「サーバーサイドの1:N」認証に基づいてマスク検知を有効化すると、認証結果から対応するマスク検知結果を取得します。マスク検知機能が有効になっていない場合でも、デフォルトでマスク検知結果はtrueと返されます。次の手順で検知機能を有効化します。

顔の温度検知

顔の温度検知機能を使用する前に、「1:N」「1:1」および「サーバーサイド1:N」認証に基づいて、次のようにIdentity Managerの温度検知設定の項目を有効にする必要があります。

注意すべき点として、温度検知機能が有効な場合、Identify Managerが正常に動作するためには温度データが必要なことです。温度データが取得されるまでは認証は行われませんが、顔のトラッキングは正常に行われます。また、温度検知機能が有効な場合は次のように顔認証用の枠を設定し、正面からの顔の角度が鋭く表示されるようにして、カメラの視野の中央で顔を認証することを推奨します。これにより、顔認証および温度検知の精度が向上します。

温度検知機能には、温度検知モジュール(サーマルイメージングシステム)が必要です。TemperatureCameraFactoryクラスを介して対応するサーマルイメージングシステムオブジェクトを取得することで初期化できます。サーマルイメージングシステムの初期化には数秒かかりますのでご注意ください。

温度データの取得後、温度検知アルゴリズムによって温度値を調整する必要があります。アルゴリズムは次の手順で手動で初期化する必要があります。

Identity Manager に Temperature Sdk Action を設定します。

サーモカメラプレビューデータを取得します(熱力学線図)。温度データを取得したら、間に合うようにIdentify Managerに挿入する必要があります。

認証コールバック結果から、個人の体温データを取得します。

Passアクセスコントロールの使用

Passアクセスコントロール機能を使用するには、グローバル初期化設定が必要です。初期化手順は次のとおりです。

Passアクセスコントロール機能を使用するための設定は、DoorDeviceAccessProxy.setConfig(config)で変更できます。

Passアクセスコントロール機能の主要なカテゴリ:

  • DoorDeviceAccessProxy:グローバルな初期化、リソースの解放、設定の使用、ドアのオープンコントロールなどを行います。

  • DoorAccessConfig:ドアアクセス設定のカテゴリです。

  • PassDoorDeviceAccessProxy:ドアチャイム、RS485 プロトコル、アラート、盗難アラートライトなど、PassやThunderシリーズデバイスで利用可能なアクセスコントロール機能を管理します。

ローカルリレー経由のドアオープン

「ローカルリレー」は、独自のアクセサリが付属したハードウェアデバイスで、ドアのオープンコントロールやドアオープン時間の設定に使用されます(ドアを開いて数秒後に閉じるなど)。本機能をサポートするハードウェアモデルは、PassとThunderシリーズです。

Passアクセスコントロール機能の使い方は次のとおりです。

DoorDeviceAccessProxy.openDoor()は、設定されたドアオープンの方法とクローズを遅延させる時間を自動的に取得し、自動的にドアオープン操作を実行します。利用者は具体的なオープン方法を気にする必要はなく、メソッドによって自動的に制御されます。次に示すネットワークリレーやWiegandコントローラーによるドアオープンの場合も同様です。

特にクローズ遅延時間を30秒を超えて設定する必要がある場合、次の方法でドアを開く必要があります。

ローカルリレーをすぐに閉じる必要がある場合、手動で次のメソッドを呼び出せます。

ネットワークリレー経由のドアオープン

「ネットワークリレー」は周辺機器です。ハードウェアデバイスはネットワークを介してネットワークリレーに接続し、ネットワークリレーにドアのオープンコマンドを送信することでドアオープン時間やクローズ遅延時間を制御します。本機能に対応するハードウェアモデルは、PassとThunderシリーズです。

Passアクセスコントロール機能は、次のように使用します。

Wiegand コントローラー経由のドアオープン

「Wiegand コントローラー」は拡張インターフェースを介してハードウェアデバイスに接続し、データ通信にWiegandプロトコルを使用する周辺機器です。ドアオープンを制御することができます。SDKでは現在、Wiegand 26、Wiegand 32、およびWiegand 34に対応しています。本機能に対応するハードウェアモデルはPassとThunderシリーズです。

標準的なWiegand 26プロトコルでサポートされている最大カード番号は8ビットで、カード番号のデータ転送はHIDとPIDに分かれています。HIDとPIDの生成モードに応じて、Wiegand 26は、「Wiegand 26(24 ビット)」および「Wiegand 26(8および16ビット)」の2種類のモードに分かれます。相違点は次のとおりです。

  • Wiegand 26(24 ビット): 通常使用するモードで、カード番号は int に変換され、2^16で割って整数にしたものがHIDになり、2^16の余りがPIDとなります。

  • Wiegand 26(8 および16 ビット): 特別に使用するモードで、カード番号の最初の3桁がHIDとしてintに変換され、最後の5桁がPIDとしてintに変換されます。

Passアクセスコントロール機能の使い方は次のとおりです。

  • Wiegand 26経由のドアオープン

  • Wiegand 32 または 34 経由のドアオープン

Wiegand カード読み取り

「Wiegand カード読み取り」は、周辺機器であるWiegandリーダーを使用して設定する必要があります。拡張インターフェースを介してデバイスと接続し、データ通信にWiegandプロトコルを使用してICカードの番号を読み取ります。Wiegand 26、Wiegand 32、およびWiegand 34に対応しています。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。Passアクセスコントロール機能の使い方は次のとおりです。

設定の完了後、Wiegand読み取りコールバックをlistenすることができます。コードの使い方は次のとおりです。

GPIO入力デバイス

「GPIO 入力デバイス」は、GPIOポートを介して接続されたハードウェアデバイスにGPIO信号を送信するデバイスの一種であり、ドアオープンボタン、消防アラートシグナル、ドアマグネットなどが含まれます。使用時には、ハードウェアデバイスが受信側、GPIO入力デバイスが送信側となり、GPIO入力ポートを介して通信します。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

Passアクセスコントロール機能は、BポートとCポートに分かれたデュアルGPIOに対応しています。使用前に関連するアクセスコントロールの設定を次のように行います。

設定の完了後、関連する信号入力をlistenすることができます。コードの使い方は次のとおりです。

GPIO出力デバイス

「GPIO出力デバイス」は、ドアベルやアラートなどのハードウェアデバイスからGPIO信号を受信するために、GPIO出力ポートを介して接続された周辺機器を指します。使用時には、ハードウェアデバイスが送信側、GPIO出力デバイスが受信側となり、両者はGPIO出力ポートを介して通信します。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

使用前に、関連するアクセスコントロールの設定を次のように行います。

アラートの使用時には、具体的に手動でアラートを制御したり、オフにしたりする必要があります。コードの使い方は次のとおりです。

照明コントロール

「照明コントロール」とはRGBフィルライト、IRフィルライト、スクリーンバックライトなど、主にハードウェアデバイスの照明アクセサリを制御します。

IRフィルライト

「IRフィルライト」はIRカメラモジュールの一部で、IR画像を向上させるために使用されます。フィルライトの耐用年数を延ばすために、使用していないときは電源を切るように動的に制御できます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。コードの使い方は次のとおりです。

スクリーンバックライト

「スクリーンバックライト」はハードウェアデバイスに付属するアクセサリで、ソフトウェアアプリケーションが休止状態(ソフトウェアアプリケーションが使われていない深夜帯など)のときにスクリーンライトを消すことで、ハードウェア機器の耐用年数を延ばし、エネルギー消費を抑えることができます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。コードの使い方は次のとおりです。

RS485 プロトコル

「RS485 プロトコル」とはシリアル通信のプロトコル規格です。RS485インターフェースは、半二重モードでの通信に対応するためにハードウェアデバイスに用意されています。半二重データの読み取り専用および書き込み専用はファームウェアによって自動的に制御されるため、上位ビジネス層ではシリアル通信にのみ注意するだけで済みます。本機能に対応するハードウェアデバイスのモデルは、PassとThunderシリーズです。

使用前にまずRS485をオンにしてから、ユースケースに応じてボーレート、データバッファ、およびデータトランシーバーのタイムアウト時間を設定します。コードの使い方は次のとおりです。

データを送信するには、次のコードを使用します。

盗難アラートボタン

「盗難アラートボタン」はハードウェアデバイスに付属しているアクセサリで、デバイスの背面に持ち上げ型ボタンで配置されています。通常動作時にボタンを押すと、ハードウェアデバイスが取り外されたときにボタンがポップアップします。ハードウェアデバイスが不正に取り外された場合は、ファームウェアレベルで感知して、警告のために 「盗難アラート」を発します。

ファームウェアレベルでは「盗難アラートボタン」をF2キー入力イベントに変換します。すなわち「盗難アラート」が鳴るとシステム層はF2キー入力イベントを送信します。F2キーの入力イベントであるため、F2キーが押されたかどうかをlistenすれば、「盗難アラートボタン」をlistenすることができます。コードの使い方は次のとおりです。

センサー

「センサー」とは照明センサーや距離センサーなど、ハードウェアデバイスに付属するセンサーを指します。通過シナリオの場合、センサーの役割は次のとおりです。

  • 照明センサー:光の強度を感知し、光量の少ない環境ではアプリケーション用に 「フィルライトモード」を設定できます。

  • 距離センサー:人の接近を感知し、特定の動作を引き起こします(例えば、人が近づくと休眠状態のデバイスを起動します)。

センサーは次のように、AndroidネイティブSDKのSensorManagerクラスで利用できます。

ブザー

「ブザー」はハードウェアデバイスに付属するアクセサリで、主にハードウェアデバイスでアラートが発生したときにビープ音を鳴らすために使用されます。現在、SensePass、SenseThunderE-miniデバイスのみがこの機能をサポートしています。ブザーを使用するには、次に示すコードでオンとオフを手動で制御する必要があります。

アプリケーションシステム署名

SDKのサンプルプロジェクトには、システム署名ファイルsensetime.jksが配置されています。このファイルをアプリケーション署名として使用すると、プリケーションがシステム権限を取得でき、システムイベントの設定やシステム設定の変更などの高いレベルの権限を必要とする操作を実行できるようになります。

使用するにはプロジェクト内のメインモジュールのルートにsensetime.jksをコピーしてから、次の設定をbuild.gradleファイルに追加します。

また、次のようにシステムアプリケーション宣言android:sharedUserId="android.uid.system"をAndroidManifest.xmlファイルに追加します。

QRコード認証

QRコード認証機能は、通常のQRコードを認識することができる機能です。使用する際にはエンコードおよびデコードライブラリとしてZXingまたはZBarを選択できます。エンドツーサイドでのデバイス認証に適していて、より高速なZBarの使用を推奨します。使用方法については,サンプルコードをご覧ください。簡単な使い方は次のとおりです。

「ドアアクセス機能」 -主に「ドアアクセスデバイス」を使用することを指し、ローカルリレーによるドアのオープン、Wiegandコントローラーによるドアのオープン、スクリーンフィルライトの消灯、ドアベルの鳴動制御、距離センサーによる人体の距離検知などの機能を含む。

✓

✓

✓

SenseThunderE

✓

✓

✓

✓

✓

SenseThunderAir

✓

✓

✓

✓

✓

SenseThunderE

✓

✓

✓

✓

SenseThunderAir

✓

✓

✓

✓

✓

✓

✓

SenseThunderE

×

×

✓

✓

✓

SenseThunderAir

×

×

✓

✓

✓

×

✓

×

SenseThunderE

×

✓

✓

✓

×

SenseThunderAir

×

✓

✓

✓

×

SenseThunerE-Mini

Thunder シリーズ

RK3399-arm64-v8a

Android 7.1

RGB 顔 + IR + サーモ

SenseThunderAir

Thunder シリーズ

RK3399-arm64-v8a

Android 7.1

RGB 顔 + IR + サーモ

顔の方向
: カメラ画像において顔が向いている方向を指し、次のように左から順に上向き、下向き、左向き、右向きとなります。

左向き

いいえ

SenseThunderAir

垂直方向の画像

左向き

いいえ

バージョン2.0.0

2021/02/05

カメラの呼び出しプロセス、およびサーモカメラの呼び出しプロセスの紹介を追加。顔の温度検知機能に関連するインターフェースの記載を更新

バージョン2.0.0

2021/04/10

デバイス名を修正

バージョン2.1.0

2021/04/30

誤植を修正

Package名を修正

機種別の温度検知バージョンを追記

デバイスモデル

オープンボタン

消防アラートシグナル

ドアセンサー

ドアベル

アラート

SensePass

✓

✓

✓

✓

✓

SenseThunderE-mini

✓

デバイスモデル

Wiegandリーダー

Wiegandコントローラー

ローカルリレー

ネットワークリレー

SensePass

✓

✓

✓

✓

SenseThunderE-mini

✓

✓

✓

デバイスモデル

ブザー

赤外線人感センサー

距離センサー

照明センサー

IRフィルライト

SensePass

✓

×

✓

✓

✓

SenseThunderE-mini

✓

デバイスモデル

RGBフィルライト

スクリーンバックライト

スピーカー

盗難アラートボタン

NFCリーダー

SensePass

×

✓

×

✓

×

SenseThunderE-mini

×

デバイスモデル

デバイスカテゴリ

プラットフォーム

Android バージョン

カメラタイプ

SensePass

Pass シリーズ

RK3399-arm64-v8a

Android 7.1

RGB 顔 + IR

SenseThunderE

Thunder シリーズ

RK3399-arm64-v8a

Android 7.1

デバイスモデル

撮影方向

顔の方向

画像のミラーリング

SensePass

垂直方向の画像

左向き

いいえ

SenseThunderE

垂直方向の画像

左向き

いいえ

SenseThunderE-Mini

環境項目

説明

デバイス

SensePass, SenseThunderE, SenseThunderE-Mini, SenseThunderAir

Android バージョン

Android 7.1以上のバージョンと互換性があります。

SDKのアクティベーション

インテリジェントハードウェアでアプリケーションを動作させるためには、承認された.lic形式のライセンスファイルを申請する必要があります。

IDE 環境

Android Studio 3.5.3 以上のバージョン

デバイスタイプ

対応するモデル

Pass シリーズ

model フォルダのルートにある .model ファイル、および pass_extフォルダ内のすべてのファイル

Thunder シリーズ

model フォルダのルートにある .model ファイル、および pass_extフォルダ内のすべてのファイル

デバイスタイプ

対応する so

Pass シリーズ

Pass-series-rk3399-general(arm64-v8a のみ)

Thunder シリーズ

Pass-series-rk3399-general(arm64-v8a のみ)

✓

✓

×

✓

RGB 顔 + IR + サーモ

垂直方向の画像

android {
     ...
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
}
dependencies {
    implementation files('libs/Thunder-android-vx.x.x.aar')
    //SDKで必要なサードパーティのライブラリ
    implementation 'com.alibaba:fastjson:1.2.70'
    implementation 'com.facebook.conceal:conceal:2.0.1@aar'
    implementation 'com.google.zxing:core:3.3.3'
    implementation 'com.github.open-android:pinyin4j:2.5.0'
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.okhttp3:okhttp:4.8.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:4.8.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
    implementation 'com.liulishuo.okdownload:okdownload:1.0.7'
    implementation 'com.liulishuo.okdownload:okhttp:1.0.7'
    implementation 'com.liulishuo.okdownload:sqlite:1.0.7'
}
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.NFC" />
//SDKを初期化します
WuKong.init(this);
//SDKで使用されているモデルを指定します。ここでは、SensePass デバイスでの初期化を例にとります。詳細については、サンプルコードをご覧ください。
model.mMode = SDKMode.PASS;
model.mAlignmentModel = "model/M_Align_occlusion_106_1.20.0.model";
model.mSmallDetectModel = "model/M_Detect_Hunter_LargeFaceSelfie_Gray_11.2.0.model";
model.mVerifyModel = "model/M_Verify_Mobilenetv2Pruned_BGR_Surveillance_4.13.0_v2_weak.model";
model.mDoubleHackModel = "model/pass_ext/M_Liveness_Antispoofing_Binocular_3.28.0.model";
model.mVerifyFinanceModel = "model/M_Verify_Mobilenetv2Pruned_BGR_Surveillance_4.13.0_v2_weak.model";
model.mAttributeModel = "model/M_Attribute_MTNet_2.1.1.model";

// assets ディレクトリ内のライセンスファイルの名前
String licenseName = "sensepass.lic";
String productName = null;

WuKong.auth(licenseName, productName, model, new IAuthCallback(){
            @Override
            public void onSuccess(){
                // アクティベーションに成功
            }

            @Override
            public void onFail(int code, String errMsg){
                // アクティベーションに失敗
            }
        });
//SDKリソースを解放します
WuKong.release();
<com.sensetime.camera.view.CameraTextureView
        android:id="@+id/camera_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:scalableType="centerCrop" />
CameraTextureView mCameraView = findViewById(R.id.camera_view);
Camera.PreviewCallback mRgbCallback = new Camera.PreviewCallback(){
        @Override
        public void onPreviewFrame(byte[] data, Camera camera){
            // Identify Manager に渡すことができる、データをプレビューするコールバック
            // IdentifyManager.getInstance().handleRgbData(data);
        }
};

// 顔カメラの設定を例にとります
CameraManager faceCameraManager = CameraManager.getInstance(CameraUtils.getFaceCameraIndex());
// データをプレビューするコールバックを追加します
faceCameraManager.addPreviewCallbackWithBuffer(mRgbCallback);
// カメラを有効化します
faceCameraManager.openCamera(getApplicationContext());
// プレビューの幅や高さ、顔の方向など、プレビュー関連のパラメーターを設定します
faceCameraManager.initParameters(1280, 720, 0, mCameraView.getSurfaceTexture());
// プレビューを開始します
faceCameraManager.startPreview();

// プレビューを停止します
faceCameraManager.stopPreview();

// カメラを解放します
faceCameraManager.releaseCamera();
faceCameraManager.setPreviewTexture(null);
faceCameraManager.removePreviewCallbackWithBuffer(mRgbCallback);
faceCameraManager.setCameraLifecycleCallback(null);
faceCameraManager.setCameraStatusCallback(null);
faceCameraManager.setCameraExceptionHandler(null);
faceCameraManager.setCameraDataUpdateCallback(null);
// サーマルイメージングシステムタイプを取得します
CameraType cameraType = TemperatureCameraUtils.getCameraType();
// カメラタイプに応じて、関連するサーマルイメージングシステムのインスタンスを取得します
ITemperatureCamera temperatureCamera = TemperatureCameraFactory.getTemperatureCamera(cameraType);
Initialize Thermal imaging system
temperatureCamera.initCamera(context);
// サーマルイメージングシステムの関連パラメーターを設定します(初期化後に実行する必要があります)
temperatureCamera.setConfig(config);
// シャッターを自動的に有効にするかどうかを設定します。デフォルトではtrueです(シャッターを有効にすると温度検知の精度が向上しますが、デバイスの耐用年数が短くなります)。
temperatureCamera.setAutoShutterEnable(true);
ITemperaturePreviewDataCallback dataCallback = new ITemperaturePreviewDataCallback(){

            @Override
            public void onTemperaturePreviewData(Bitmap temperatureBitmap, float[] temperatureValue, int width, int height){
                    // 熱力学線図および温度データのコールバック
            }
        };
// データコールバックを追加します
temperatureCamera.addTemperaturePreviewDataCallback(dataCallback);
// データが使用されていない場合、コールバックを削除します。
temperatureCamera.removeTemperaturePreviewDataCallback(dataCallback);
// 温度データは、摂氏で表示されないことに注意する必要があります。摂氏でデータを取得する場合は、次の方法で求めることができます。
temperatureCamera.getCentigradeFromTemperatureData(temperatureValue);
// または一括で変換することも可能です。
temperatureCamera.matrixTemperature(temperatureValue,width,height,distance,x,y,w,h,tempArray);
// サーマルイメージングシステムから体温を取得します
temperatureCamera.getCameraBodyTemperature();
// サーマルイメージングシステムのプレビューを開始します
temperatureCamera.startPreview(textureView);
// サーマルイメージングシステムのプレビューを停止します
temperatureCamera.stopPreview();
// サーマルイメージングシステムのカメラリソースを解放します
temperatureCamera.releaseCamera();
// シャッターを有効にします(シャッターを有効にすると温度検知の精度が向上しますが、デバイスの耐用年数が短くなります)
temperatureCamera.shutter();
// 正面からの鮮明な写真1枚
Bitmap avatar = BitmapFactory.decode(R.id.avatar);
int userId =123;

if(avatar != null){
      // 写真から顔フィーチャーを取得します
      byte[] feature = FeatureManagerProxy.getInstance().getFeature(avatar);
      // フィーチャーライブラリを挿入します(ネイティブメモリ)。データの永続化には、上位ビジネス層での処理が必要です。
      int result = FeatureManagerProxy.getInstance().insert(userId, feature);
      if(result == 0){
            Log.d(TAG, "Face Feature Inserted Successfully");
      }
}

// 人物のフィーチャーを削除します
int result = FeatureManagerProxy.getInstance().delete(userId);
if(result == 0){
      Log.d(TAG, "Face Feature Deleted Successfully");
}
Camera.PreviewCallback mRgbCallback = new Camera.PreviewCallback(){
        @Override
        public void onPreviewFrame(byte[] data, Camera camera){
            // Identity Manager に RGB データのプレビューコールバックを転送します
            IdentifyManager.getInstance().handleRgbData(data);
        }
};
Camera.PreviewCallback mIrCallback = new Camera.PreviewCallback(){
        @Override
        public void onPreviewFrame(byte[] data, Camera camera){
            // Identity Manager に IR データのプレビューコールバックを転送します
            IdentifyManager.getInstance().handleIrData(data);
        }
};
 // デバイスのハードウェア環境に応じた、画像関連の設定を構成します
ImageConfig imageConfig = new ImageConfig.Builder()
          .previewW(1280)
          .previewH(720)
          .faceOrientation(FaceOrientation.UP)
          .pixelFormat(MidPixelFormat.NV21)
          .build();


// 初期化します
IdentifyManager.getInstance().init(imageConfig,identifyCallback);

// Identify Manager の認証モードを設定します
IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_1_N);
// 結果のコールバックを設定します
IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
//認証を有効にします
IdentifyManager.getInstance().start();

//認証を停止します
IdentifyManager.getInstance().stop();

// Identify Manager を解放します
IdentifyManager.getInstance().release();
IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
IdentifyConfig.hasLiveness = true; // 生体検知を有効にします
identifyConfig.isSingleLiveness = DeviceInfoUtils.isSenseIDProduct();   // モノキュラカメラによる生体検知では、本項目はIDシリーズのデバイスのみで有効にする必要があります
identifyConfig.isSenseGateConfig = DeviceInfoUtils.isSenseGateProduct();  // 使用しているデバイスが SenseGateシリーズの場合のみ、オンにします
identifyConfig.isContinueVerify = true; // IdentifyConfig.isContinueVerify = true; / / 連続して認証するかどうか。有効にすると、連続して認識されます(顔がカメラの視野に入っている必要があります)。continueVerifyIntervalTimeパラメーターと一緒に使用します。
identifyConfig.continueVerifyIntervalTime = 3000L;  // 同じ顔を続けて認証する間隔。isContinueVerifyがtrueに設定されている場合に有効になります。
identifyConfig.hasTemperatureDetection = false;
identifyConfig.isServerVerify = false;
IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);

// 修正点は次のとおりです。1:N認証で、照合閾値が0.83fに、生体フィルタリング閾値が0.95f(超える場合は非生体になります)に変更されました。顔認証の最小値は、100ピクセルです。
ThresholdConfig thresholdConfig = IdentifyManager.getInstance().getThresholdConfig();
thresholdConfig.verifyScore = 0.83f;
thresholdConfig.livenessScore = 0.95f;
thresholdConfig.faceMinWidth =100;
thresholdConfig.verifyAreaRect = new RectF(0, 0, mPreviewHeight, mPreviewWidth);
IdentifyManager.getInstance().setThresholdConfig(thresholdConfig);
IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback(){

    @Override
    public void onDrawFaces(@Nullable List<FaceInfo> list){
        // 顔検知のコールバック。顔設定フレームの描画に使用されます。
        // 認証が一時停止されても、このコールバックは発生することに注意する必要があります。その場合、プロセス内で顔はトラッキングされているものの、認識されていない状態となります。
    }

    @Override
    public void onClearScreen(){
        // スクリーンを消去するコールバック。カメラの視野に顔が入っていない場合、本コールバックでスクリーンを消去します。
    }

    @Override
    public void onUnknown(float faceW){
                // 顔が大きすぎたり、小さすぎたりして、生体であるかどうか判断できない場合は、本メソッドで通知されます
    }

    @Override
    public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults){
                //認証結果のコールバック
    }
};

// 結果を設定するコールバック
IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
// 結果のコールバックを削除します
IdentifyManager.getInstance().setIdentifyCallback(null);
// Identify Managerの初期化は、1:N認証の場合と同様です
// Identify Managerを1:Nから1:1に切り替える場合、まず単一の認証機能を設定してから、モードを切り替える必要があります

Bitmap singleTarget = BitmapFactory.decodeResource(getResource(), R.mipmap.face);
boolean setupResult = IdentifyManager.getInstance().setIdentifyTarget(singleTarget);
// Identify Managerの認証モードを設定します。設定する前に、各認証機能が正常に設定されているか確認します。
if(setupResult){
    IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_1_1);
}
//1. サーバー認証モードを有効にします
IdentifyManager.getInstance().setVerifyMode(VerifyModeEnum.MODE_SERVER_1_N);

//2. サーバー認証操作を実行します
IServerVerifyAction serverVerify = new IServerVerifyAction(){
        @Override
        public <T extends FaceSearchResult> T verify(@NonNull byte[] cameraData, byte[] feature, @Nullable FaceInfo rgbFace,int width, int height){

              // HTTPリクエストを介してデータをアップロードし、認証結果を取得します(適切なリクエストのタイムアウトを設定するようにご注意ください)
            // ..コード

            // 次の例のように、顔の検索結果を構築して取得します
            FaceSearchResult result = new FaceSearchResult();
            result.score = 0.93f;
            result.userID =12345;

            return(T)result;
        }
};

// 3. サーバー認証操作を設定します
IdentifyManager.getInstance().setServerVerifyAction(serverVerify);
// マスク着用認証を有効化します
IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
identifyConfig.isOpenWearMaskIdentify = true;
IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);

// 認証結果のコールバックインターフェースを介して、顔認証結果を取得します
IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback(){

    @Override
    public void onDrawFaces(@Nullable List<FaceInfo> list){
        // 顔検知のコールバック。顔設定フレームの描画に使用されます。
        // 認証が一時停止されても、このコールバックは発生することに注意する必要があります。その場合、プロセス内で顔はトラッキングされているものの、認識されていない状態となります。
    }

    @Override
    public void onClearScreen(){
        // スクリーンを消去するコールバック。カメラの視野に顔が入っていない場合、本コールバックでスクリーンを消去します。
    }

    @Override
    public void onUnknown(float faceW){
                // 顔が大きすぎたり、小さすぎたりして、生体であるかどうか判断できない場合は、本メソッドで通知されます
    }

    @Override
    public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults){
                //認証結果のコールバック
      for(int i = 0; i < frameIdentifyResults.size(); i++){
            FrameIdentifyResult frameIdentifyResult = frameIdentifyResults.get(i);
            List<FaceIdentifyResult> faceIdentifyResults = frameIdentifyResult.faceIdentifyResults;
            for(int j = 0; j < faceIdentifyResults.size(); j++){
                FaceIdentifyResult faceIdentifyResult = faceIdentifyResults.get(j);
                  // 顔認証結果を取得します
                  boolean mask = faceIdentifyResult.isMask();
            }
        }
    }
};

// 結果を設定するコールバック
IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
IdentifyConfig identifyConfig = IdentifyManager.getInstance().getIdentifyConfig();
identifyConfig.hasTemperatureDetection = true;    // 温度検知を有効にします
IdentifyManager.getInstance().setIdentifyConfig(identifyConfig);
ThresholdConfig thresholdConfig = IdentifyManager.getInstance().getThresholdConfig();
thresholdConfig.faceMinWidth = 200; // 温度検知では、近距離で、顔の幅を大きめに設定する必要があります
thresholdConfig.pitch = 20;   // 温度検知ではより厳しい条件が求められますが、前を向く顔であれば、より正確に温度を計測できます
thresholdConfig.roll = 20;
thresholdConfig.yaw = 20;
thresholdConfig.verifyAreaRect = new RectF(125, 400, 565, 835); // SensePassデバイスを例にとります       
IdentifyManager.getInstance().setThresholdConfig(thresholdConfig);
// カメラタイプを取得します
CameraType type = TemperatureCameraUtils.getCameraType();
// サーマルイメージングシステムオブジェクトを作成します
ITemperatureCamera mTemperatureCamera = TemperatureCameraFactory.getTemperatureCamera(type);
// 初期化します
mTemperatureCamera.initCamera(this);
// 温度比較アルゴリズムを初期化します(温度の調整用)
TemperConvertCallback temperConvertCallback = new TemperConvertCallback(){

            private float[] tempArray;

            @Override
            public float temperConvertCentigrade(float temper){

                return TemperatureCameraFactory.getTemperatureCamera(type).getCentigradeFromTemperatureData(temper);
            }

            @Override
            public float[] getTempMatrix(float[] y16Frame, int y16W, int y16H, float distance, int x, int y, int w, int h){

                int size = w * h;
                if(tempArray == null || tempArray.length != size){
                    tempArray = new float[size];
                }
                TemperatureCameraFactory.getTemperatureCamera(type).matrixTemperature(y16Frame, y16W, y16H, distance, x, y, w, h,                                         temperConvertCallback = tempArray);
                return tempArray;
            }
        };
// ご注意: デバイスによってアルゴリズムのバージョンが異なります。
// 現在SenseThunderEがサポートするのは TempMeasureVersion.TempMeasure_1_2_0、TempMeasureVersion.TempMeasure_1_5_0、TempMeasureVersion.TempMeasure_1_6_0、TempMeasureVersion.TempMeasure_1_7_0 とする
// SenseThunderAirがサポートするのは TempMeasureVersion.TempMeasure_1_7_0、TempMeasureVersion.TempMeasure_1_8_0 とする
// SenseThunderE-miniがサポートするのは TempMeasureVersion.TempMeasure_1_5_0、TempMeasureVersion.TempMeasure_1_11_0、TempMeasureVersion.TempMeasure_1_10_0、TempMeasureVersion.TempMeasure_1_3_0 とする
// 詳しくは、TemperatureMeasureVersionUtils.getTempMeasureVersionByDevice()での実行をご参照ください。
TempMeasureVersion algorithmVersion = TemperatureMeasureVersionUtils.getTempMeasureVersionByDevice();
int ret = TemperatureActionProxy.init(algorithmVersio, temperConvertCallbackn);
if(ret == 0){
        Log.d(TAG, "Temperature Measurement Algorithm Initialized Successfully");
}
ITemperatureSdkAction action = new ITemperatureSdkAction(){

            @Override
            public <T extends TrackAndTemperatureResult> List<T> temperCalculateAir(MatchFace[] matchFaces, @Nullable Bitmap temperatureBitmap, float[] temperatureData, int temperatureWidth, int temperatureHeight, FaceOrientation temperatureOrientation){
                // 使用している機器の周囲の温度
                // CameraType が CameraType.GUIDE120 または CameraType.IRAY の場合のコード例は次のとおりです
                   MatchFace matchFace = matchFaces[0];
                    float envTemperature = 25.1f;
                    TemperInfo temperInfo = TemperatureActionProxy.temperCalculateObtainRect(matchFace.rgbFace, temperatureData,
                                                                                     temperatureWidth, temperatureHeight, FaceOrientation.UP.getValue(), envTemperature, 0.1f);
                    TrackAndTemperatureResult trackAndTemperatureResult = new TrackAndTemperatureResult();
                    trackAndTemperatureResult.setFaceInfo(matchFace.rgbFace);
                    trackAndTemperatureResult.setIrFaceInfo(matchFace.irFace);
                    trackAndTemperatureResult.setTemperature(temperInfo.temper);

                    List<T> ts = new ArrayList<>();
                    ts.add((T)trackAndTemperatureResult);
                    return ts;
            }
        };
            }
        };
// Temperature Sdk Action を設定します
IdentifyManager.getInstance().setTemperatureSdkAction(action);
ITemperaturePreviewDataCallback mPreviewDataCallback =
          new ITemperaturePreviewDataCallback(){

          @Override
      public void onTemperaturePreviewData(
            Bitmap temperatureBitmap, float[] temperatureValue, int width, int height){

                // temperatureBitmap - 温度ビットマッププレビューの描画に使用できる熱力学線図
                // temperatureValue - 温度データ
                // 幅、高さ - 熱力学線図の熱の幅および高さ

                // Identify Manager に温度データを挿入します(温度検知機能を有効化後に温度データが挿入されない場合、認証は実行されません)
                IdentifyManager.getInstance().handleTemperatureData(
                  temperatureBitmap, temperatureValue,width, height, mCameraUseConfig.faceOrientation);
            }
        };

// コールバックを設定します
mTemperatureCamera.addTemperaturePreviewDataCallback(mPreviewDataCallback);
//認証結果コールバックインターフェースを介して、顔認証結果を取得します
IIdentifyResultCallback identifyCallback = new IIdentifyResultCallback(){

    @Override
    public void onDrawFaces(@Nullable List<FaceInfo> list){
        // 顔検知コールバック。顔設定フレームの描画に使用できます。
        // 認証が一時停止されてもこのコールバックは発生することに注意する必要があります。その場合、プロセス内で顔はトラッキングされているものの、認識されていない状態となります。
    }

    @Override
    public void onClearScreen(){
        // スクリーンを消去するコールバック。カメラの視野に顔が入っていない場合、本コールバックでスクリーンを消去します。
    }

    @Override
    public void onUnknown(float faceW){
                // 顔が大きすぎたり、小さすぎたりして、生体であるかどうか判断できない場合は、本メソッドで通知されます
    }

    @Override
    public void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults){
                //認証結果のコールバック
              for(int i = 0; i < frameIdentifyResults.size(); i++){
            FrameIdentifyResult frameIdentifyResult = frameIdentifyResults.get(i);
            if(frameIdentifyResult == null
                    || frameIdentifyResult.faceIdentifyResults == null
                    || frameIdentifyResult.faceIdentifyResults.size()<= 0){
                continue;
            }
            List<FaceIdentifyResult> faceIdentifyResults = frameIdentifyResult.faceIdentifyResults;
            for(int j = 0; j < faceIdentifyResults.size(); j++){
                FaceIdentifyResult faceIdentifyResult = faceIdentifyResults.get(j);
                if(faceIdentifyResult == null || faceIdentifyResult.getIdentifyResultTypeEnum()== null){
                    continue;
                }
                TrackAndTemperatureResult trackAndTemperatureResult = faceIdentifyResult.getTrackAndTemperatureResult();
                float temperature = 0;
                if(trackAndTemperatureResult != null){
                    temperature = trackAndTemperatureResult.getTemperature();
                }
                Log.i(TAG, String.format(Locale.getDefault(), "userId-%d temperature is %f",
                                         faceIdentifyResult.getUserId(), temperature));
            }
        }
    }
};

// 結果を設定するコールバック
IdentifyManager.getInstance().setIdentifyCallback(identifyCallback);
// Passアクセスコントロール機能を使用する前に、本機能の初期化を呼び出す必要があります
DoorDeviceAccessProxy.init();

final DoorAccessConfig config = new DoorAccessConfig.Builder()
        // GPIO の B ポートの入力タイプを設定します。デフォルトでは GPIO_IN_NONE に設定されます。
        .setGpioInB(DoorAccessConfig.GPIO_IN_NONE)
        // GPIO の C ポートの入力タイプを設定します。デフォルトでは GPIO_IN_NONE に設定されます。
        .setGpioInC(DoorAccessConfig.GPIO_IN_NONE)
        // ドアオープン時間を設定します。ローカルリレーのみ(ここでは、開いた後、5 秒で閉じるように設定しています)。
        .setOpenDoorTime(5)
        // GPIO 出力タイプを設定します
        .setGpioOutA(DoorAccessConfig.GPIO_OUT_NONE)
        // RS485 データの読み書きをファームウェアで制御します(ファームウェアに対応している必要があります。対応していない場合は、false に設定してください)
        .setIsSupportRS485GpioAutoControl(true)
        // Wiegand 入力プロトコルタイプを設定します
        .setWiegandInput(DoorAccessConfig.WIEGAND26_24_BIT)
        // ドアオープンモードを設定します
        .setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_RELAY)
        .Setthe Serial Port Baud Rate for RS485 Protocol
        .setRS485BaudRate(9600)
        .build();
DoorDeviceAccessProxy.setConfig(config);
// オープンドアモードを「ローカルリレー」に設定します
DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
mDoorAccessConfig.setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_RELAY);
DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);

// 本メソッドはグローバルなドアオープンメソッドで、設定された方法に応じて自動的にドアオープン操作を実行します
// IC カード番号は入力パラメーターがWiegand Open Doorの場合のみ使用します。ここに直接転送します。
DoorDeviceAccessProxy.openDoor("");
// opDoorTime で設定した時間が経過したらドアを閉めます。遅延時間は次の方法で直接決まります
DoorDeviceAccessProxy.openDoorWithRelay(openDoorTime *1000);
DoorDeviceAccessProxy.closeRelayDoor();
DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
// IP 番号を入力するだけです。デフォルトでポートは12345 に設定されています。初期化時に設定されている場合は、ここでは繰り返し設定不要です。
mDoorAccessConfig.setRelayIp("192.168.12.11");
// オープンドアモードをネットワークリレーに設定します
mDoorAccessConfig.setOpenDoorMode(DoorAccessConfig.OPEN_DOOR_MODE_IP_RELAY);
DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);

// パラメーターは、クローズ遅延時間です。自由に設定できます。
DoorDeviceAccessProxy.openDoor("");
String cardNumver = "12345678";
// Wiegand 26(24 ビット)経由でドアを開きます
DoorDeviceAccessProxy.openDoor(cardNumber);
String cardNumver = "1234567890";
DoorDeviceAccessProxy.openDoor(cardNumber);
DoorAccessConfig config = DoorDeviceAccessProxy.getConfig();
// Wiegand 26標準カードリーダーを設定します
config.setWiegandInput(DoorAccessConfig.WIEGAND26_24_BIT);
DoorDeviceAccessProxy.setConfig(config);
DoorDeviceAccessProxy.setCardReaderCallback(
            new WiegandReaderDevice.CardReaderCallback(){

    @Override
    public void onRead(String cardNumber){
        // カード番号の読み取りに成功しました。cardNumberがカード番号です。
    }
});
DoorAccessConfig mDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
// ここでは、周辺機器がBポートを介して、ドアボタンに接続されていると仮定します。Cポートを使用する場合は、doorAccessConfig.setGpioInC()を設定してください。
mDoorAccessConfig.setGpioInB(DoorAccessConfig.GPIO_IN_DOOR_BUTTON);
DoorDeviceAccessProxy.setConfig(mDoorAccessConfig);
// ドアボタンを使用する場合
PassDoorDeviceAccessProxy.setOnClickDoorButtonListener(
                new DoorButtonDevice.DoorButtonOnClickListener(){

        @Override
        public void onClick(){
            // ドアオープン信号を受け取ります
        }
});

// 消防アラートシグナル受信リスナーを使用する場合
PassDoorDeviceAccessProxy.setReceiveFireSignListener(
                new FireSignalDevice.ReceiveFireSignListener(){

        @Override
        public void onReceive(){
            // 消防アラートシグナルを受け取ります
        }
});

// ドアセンサーを使用する場合
PassDoorDeviceAccessProxy.setDoorStateCallback(
                new PassDoorDeviceAccessProxy.DoorMagnetismStateCallback(){

        @Override
        public void onDoorStateChanged(int state){
            if(state == '0'){
                // ドアの磁器ステータス: オフ
            } else {
                // ドアの磁器ステータス: オン
            }
        }
});
DoorAccessConfig sgDoorAccessConfig = DoorDeviceAccessProxy.getConfig();
// ここでは、ドアベルを使用していると仮定しています
sgDoorAccessConfig.setGpioOutA(DoorAccessConfig.GPIO_OUT_DOOR_BELL);
DoorDeviceAccessProxy.setConfig(sgDoorAccessConfig);

// ドアベルを鳴らす場合のパラメーターは時間です(ドアベルのメーカーは鳴動時間を指定するのではなく、回数を指定して鳴らすように設定している場合があるため、実際の鳴動時間には誤差が生じる可能性があります)
PassDoorDeviceAccessProxy.pressDoorBell(2000);
// アラートが鳴ります
PassDoorDeviceAccessProxy.pressAlarmBell();
// 手動でアラートをオフにします
PassDoorDeviceAccessProxy.releaseAlarmBell();
// IRフィルライトをオンにします
PassDoorDeviceAccessProxy.turnOnIrLight();

// IRフィルライトをオフにします
PassDoorDeviceAccessProxy.turnOffIrLight();
// スクリーンバックライトをオフにします
PassDoorDeviceAccessProxy.closeBackLight();

// スクリーンバックライトをオンにします
PassDoorDeviceAccessProxy.openBackLight();
// RS485を開始し、ボーレートを9600、読み取りバッファーサイズを32、タイムアウト時間を3秒にそれぞれ設定します
PassDoorDeviceAccessProxy..enableRS485(9600, 32,
            new RS485Device.RS485ReceiveListener(){

            @Override
            public void onReceive(byte[] data, long dataLength){
                // 受信データ
            }

        }, 3000, new SerialPortReader.OnReadTimeOutListener(){

            @Override
            public void onTimeout(byte[] data, long dataLength){
                // データ読み取りタイムアウト
            }
        }
});
PassDoorDeviceAccessProxy.sendDataByRS485(data);
// onKeyUp()イベントを介してアクティビティでリッスンします
public class ForceDisassemblyDemoActivity extends AppCompatActivity {

    // 冗長コードは省略します

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event){
        if(keyCode == KeyEvent.KEYCODE_F2){
            // 盗難アラートをlistenします
        }
        return super.onKeyUp(keyCode, event);
    }
}
SensorManager mSensorManager =(SensorManager)getSystemService(Context.SENSOR_SERVICE);
// 照明センサーを使用します。距離センターを使用するには、Sensor.TYPE_PROXIMITY パラメーターを使用します。
Sensor lightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
if(lightSensor != null){

    mSensorManager.registerListener(new SensorEventListener(){
        @Override
        public void onSensorChanged(SensorEvent event){
            // event.value[0]を介して特定の値を取得し、特定の処理を実行します
        }

        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy){

        }
    }, lightSensor, SensorManager.SENSOR_DELAY_NORMAL);

} else {
     // センサーを使用できません
}
// ブザーをオンにします
PassDoorDeviceAccessProxy.pressBuzzer();

// ブザーをオフにします
PassDoorDeviceAccessProxy.releaseBuzzer();
android {

    signingConfigs {
        system {
            keyAlias 'sensetime'
            keyPassword 'sensetime'
            storeFile file('./sensetime.jks')
            storePassword 'sensetime'
        }
    }

    buildTypes {
        debug {
            signingConfig signingConfigs.system
            // ...
        }
        release {
            signingConfig signingConfigs.system
            // ...
        }
    }
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="thunder.wksample"
    android:sharedUserId="android.uid.system">
</manifest>
QRCodeDecoderProxy qRCodeDecoder = new QRCodeDecoderProxy(new ZBarDecoderImpl());
// previewData は、カメラのプレビューフレームデータです
qRCodeDecoder.decodeQRCode(previewData,1280, 720);

ドアアクセス

PassとThunderシリーズのドアアクセスデバイスをコントロール

機能類の説明

DoorDeviceAccessProxy

制御デバイスのGPIOポートやシリアルポートなどの通信デバイスの全体的な初期化、構成、およびリソース解放操作を制御し、特定のドアオープン操作を実行

メンバー関数の説明

DoorAccessConfig getConfig()

ドアアクセス構成を取得

パラメータ

なし

戻り値

例外

なし

DoorAccessDevice getDevice(int deviceType)

デバイスタイプによってデバイス引数を取得

パラメータ

戻り値

例外

なし

void changeOpenDoorDevice(int mode)

ドアオープンモードを変更

パラメータ

戻り値

なし

例外

なし

void closeRelayDoor()

リレードアを閉じます

パラメータ

なし

戻り値

なし

例外

なし

void init()

シリアルポートナンバーなしの初期化。[void init(String uartName)]\を参照

パラメータ

なし

戻り値

なし

例外

なし

void init(String uartName)

シリアルポートナンバーがある場合の初期化

パラメータ

戻り値

なし

例外

なし

void openDoor(String cardNumber)

ドアをオープン。設定したドアオープンモードに従いオープンを実行

パラメータ

戻り値

なし

例外

なし

void release()

リソースを解放

パラメータ

なし

戻り値

なし

例外

なし

void setConfig(DoorAccessConfig config)

ドアアクセス構成を設定

パラメータ

戻り値

なし

例外

なし

void setCardReaderCallback(WiegandReaderDevice.CardReaderCallback cardReaderCallback)

カード読み取りコールバックを設定

パラメータ

戻り値

なし

例外

なし

void setCustomWiegandDataReceivedCallback(WiegandReaderDevice.OnDataReceivedCallback dataReceivedCallback)

カスタムWiegandデータインタフェースコールバックを設定

パラメータ

戻り値

なし

例外

なし

void setICardNumberAnalysis(WiegandDoorDevice.ICardNumberAnalysis cardNumberAnalysis)

Wiegandカードナンバー解析方式を設定

パラメータ

戻り値

なし

例外

なし

PassDoorDeviceAccessProxy

SensePassとSenseThunderシリーズの一部ドアアクセスデバイスをコントロール

メンバー関数の説明

void closeBackLight()

バックライトをオフ

パラメータ

なし

戻り値

なし

例外

なし

void enableRS485(RS485Device.RS485ReceiveListener listener)

RS485を有効

パラメータ

戻り値

なし

例外

なし

void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener)

RS485を有効

パラメータ

戻り値

なし

例外

なし

void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener, int readTimeout, SerialPortReader.OnReadTimeOutListener timeOutListener)

RS485を有効

パラメータ

戻り値

なし

例外

なし

void openBackLight()

バックライトをオン

パラメータ

なし

戻り値

なし

例外

なし

void pressBuzzer()

ブザーをオン(SensePassとSenseThunderE-miniにのみ対応)

パラメータ

なし

戻り値

なし

例外

なし

void pressDoorBell(int pressDownDuration)

ドアベルを押す

パラメータ

戻り値

なし

例外

なし

void pressAlarmBell()

アラートをオンにするためにアラートベルを押下

パラメータ

なし

戻り値

なし

例外

なし

void releaseAlarmBell()

アラートベルを解除

パラメータ

なし

戻り値

なし

例外

なし

void releaseBuzzer()

ブザーをオフに(SensePass020にのみサポート)

パラメータ

なし

戻り値

なし

例外

なし

void setDoorStateCallback(DoorMagnetismStateCallback callback)

ドアステータスのコールバックを設定し、ドアの開閉ステータスをモニタリング

パラメータ

戻り値

なし

例外

なし

void setOnClickDoorButtonListener(DoorButtonDevice.DoorButtonOnClickListener listener)

ドアボタンのクリック状態のリスナー

パラメータ

戻り値

なし

例外

なし

void setReceiveFireSignListener(FireSignalDevice.ReceiveFireSignListener listener)

Receive 消防シグナルのリスナー

パラメータ

戻り値

なし

例外

なし

void sendDataByRS485(byte[] data)

RS485でデータ送信

パラメータ

戻り値

なし

例外

なし

void turnOnIrLight()

IRライトをオン。SensePassとSenseThunderシリーズをサポート

パラメータ

なし

戻り値

なし

例外

なし

void turnOffIrLight()

IRライトをオフに。SensePassとSenseThunderシリーズをサポート

パラメータ

なし

戻り値

なし

例外

なし

エンティティの説明

DoorAccessConfig

ドアアクセス構成

プロパティの説明

ドアオープンモード

Wiegand入力

GPIO構成

設定可能なプロパティ

メソッドの説明

DoorAccessDevice

ドアアクセスデバイス

メソッドの説明

CardReaderCallback

WIEGANDデバイスカードリーダーのコールバック

メソッドの説明

OnDataReceivedCallback

Wiegandパススルーデータ受信のコールバック

メソッドの説明

ICardNumberAnalysis

カスタマイズされたWiegandカードナンバーデータの解析

メソッドの説明

DoorMagnetismStateCallback

ドアマグネットステータスのコールバック

メソッドの説明

ReceiveFireSignListener

消防シグナルのリスナー

メソッドの説明

ReceiveDismantleSignListener

盗難アラートのリスナー

メソッドの説明

SensorListener

センサーデータ変更インターフェース

メソッドの説明

OnSensorChangedListener

IRリスナー

メソッドの説明

RS485ReceiveListener

RS485データ読み取りリスナー

メソッドの説明

OnReadTimeOutListener

RS485データ読み取りタイムアウトのコールバック

メソッドの説明

DoorButtonOnClickListener

ドアボタンのクリック状態をモニタリング

メソッドの説明

void init()

初期化

2.0.0

void init(String uartName)

初期化

2.0.0

void openDoor(String cardNumber)

ドアをオープン

2.0.0

void release()

リソースを解放

2.0.0

void setConfig(DoorAccessConfig config)

ドアアクセス構成を設定

2.0.0

void setCardReaderCallback

(WiegandReaderDevice.CardReaderCallback cardReaderCallback)

Wiegandカードリーダーコールバックを設定

2.0.0

void setCustomWiegandDataReceivedCallback

(WiegandReaderDevice.OnDataReceivedCallback dataReceivedCallback)

カスタムWiegandデータインタフェースコールバックを設定

2.0.0

void setICardNumberAnalysis

(WiegandDoorDevice.ICardNumberAnalysis cardNumberAnalysis)

Wiegandカード番号解析方式を設定

2.0.0

2.0.0

void openBackLight()

バックライトをオン

2.0.0

void pressBuzzer()

ブザーをオン

2.0.0

void pressDoorBell(int pressDownDuration)

ドアベルを押す

2.0.0

void pressAlarmBell()

アラームベルを押す

2.0.0

void releaseAlarmBell()

アラームベルを解除

2.0.0

void releaseBuzzer()

ブザーを解除

2.0.0

void setDoorStateCallback(DoorMagnetismStateCallback callback)

ドアステータスコールバックを設定

2.0.0

void setOnClickDoorButtonListener

(DoorButtonDevice.DoorButtonOnClickListener listener)

ドアボタンのクリック状態をモニタリング

2.0.0

void setReceiveFireSignListener

(FireSignalDevice.ReceiveFireSignListener listener)

消防シグナルのモニタリング

2.0.0

void sendDataByRS485(byte[] data)

RS485でデータ送信

2.0.0

void turnOnIrLight()

IRライトをオン

2.0.0

void turnOffIrLight()

IRライトをオフ

2.0.0

listener

RS485Device.RS485ReceiveListener

データ受信コールバック

なし

2.0.0

listener

RS485Device.RS485ReceiveListener

データ受信コールバック

なし

2.0.0

readTimeout

int

データ読み取りのタイムアウト期間

なし

2.0.0

timeOutListener

SerialPortReader.OnReadTimeOutListener

データ読み取りのタイムアウトコールバック

なし

2.0.0

constant

2.0.0

static final int OPEN_DOOR_MODE_WIEGAND26_8_16_BIT

WIEGAND26(8 + 16 bit)

constant

2.0.0

static final int OPEN_DOOR_MODE_WIEGAND32

WIEGAND32

constant

2.0.0

static final int OPEN_DOOR_MODE_WIEGAND34

WIEGAND34

Constant

2.0.0

static final int OPEN_DOOR_MODE_CUSTOM

Wiegand カスタム(出力)

Constant

2.0.0

Constant

2.0.0

static final int WIEGAND34

WIEGAND34

Constant

2.0.0

static final int WIEGAND_INPUT_CUSTOM

WIEGAND カスタム(入力)

Constant

2.0.0

Constant

2.0.0

static final int GPIO_IN_FIRE_SIGNAL

GPIO入力構成は消防シグナル

Constant

2.0.0

static final int GPIO_OUT_NONE

GPIO出力を構成していません

Constant

2.0.0

static final int GPIO_OUT_DOOR_BELL

GPIO出力構成はドアベル

Constant

2.0.0

static final int GPIO_OUT_ALARM

GPIO出力構成はアラーム

Constant

2.0.0

なし

2.0.0

int mGpioInA

GPIO入力A

なし

2.0.0

int mGpioInB

GPIO入力B

なし

2.0.0

int mWiegandInput

Wiegand入力

なし

2.0.0

int mDoorMagnetismTimeout

ドアマグネットタイムアウト

なし

2.0.0

String mRelayIp

ネットワークリレーIP

なし

2.0.0

int mRS485BaudRate

RS485シリアルポートボードレート

Default 9600

2.0.0

int mRS485BufferSize

RS485バッファーサイズ

Default 64

2.0.0

boolean mIsSupportRS485GpioAutoControl

RS485 GPIO自動制御をサポートするかを判定

なし

2.0.0

int mPulseCycle

パルス周期

Default 2400

2.0.0

int mPulseWidth

パルス幅

Default 380

2.0.0

boolean mReverseCardNumber

カードナンバーを逆順にするかを判定

なし

2.0.0

なし

2.0.0

boolean isDeviceCreated()

デバイスが生成されたかを判定

なし

2.0.0

void createDevice()

デバイスを生成

なし

2.0.0

メンバー関数

説明

導入バージョン

DoorAccessConfig getConfig()

ドアアクセス構成を取得

2.0.0

DoorAccessDevice getDevice(int deviceType)

デバイスを取得

2.0.0

void changeOpenDoorDevice(int mode)

ドアオープンモードを変更

2.0.0

void closeRelayDoor()

リレードアを閉じます

戻り値

説明

備考

導入バージョン

DoorAccessConfig

ドアアクセス構成のインスタンス

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

deviceType

int

デバイスタイプ

なし

2.0.0

戻り値

説明

備考

導入バージョン

DoorAccessDevice

ドアアクセスデバイス

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

mode

int

ドアオープンモード

DoorAccessConfig Door Access Configuration )

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

uartName

String

シリアルポート名

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

cardNumber

String

ICカードナンバー

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

config

DoorAccessConfig

ドアアクセス構成

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

cardReaderCallback

WiegandReaderDevice.CardReaderCallback

Wiegandカード読み取りコールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

dataReceivedCallback

WiegandReaderDevice.OnDataReceivedCallback

Wiegandパススルーデータ受信コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

cardNumberAnalysis

WiegandDoorDevice.ICardNumberAnalysis

Wiegandカードナンバー解析方式

なし

2.0.0

メンバー関数

説明

導入バージョン

void closeBackLight()

バックライトをオフ

2.0.0

void enableRS485(RS485Device.RS485ReceiveListener listener)

RS485を有効

2.0.0

void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener)

RS485を有効

2.0.0

void enableRS485(int baudrate, int readBufferSize, RS485Device.RS485ReceiveListener listener, int readTimeout, SerialPortReader.OnReadTimeOutListener timeOutListener)

パラメータ名

Type

説明

備考

導入バージョン

listener

RS485Device.RS485ReceiveListener

データ受信コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

baudrate

int

ボーレート

なし

2.0.0

readBufferSize

int

読み取る必要のあるデータ長

なし

パラメータ名

Type

説明

備考

導入バージョン

baudrate

int

ボーレート

なし

2.0.0

readBufferSize

int

読み取る必要のあるデータ長

なし

パラメータ名

Type

説明

備考

導入バージョン

pressDownDuration

int

押下した期間で、単位がミリ秒

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

callback

DoorMagnetismStateCallback

ドアステータスのコールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

listener

DoorButtonDevice.DoorButtonOnClickListener

ドアボタンのクリック状態のリスナー

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

listener

FireSignalDevice.ReceiveFireSignListener

消防シグナルのリスナー

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

data

byte[]

送信待ちのデータ

なし

2.0.0

Member

説明

備考

導入バージョン

static final int OPEN_DOOR_MODE_RELAY

ローカルリレードアをオープン

constant

2.0.0

static final int OPEN_DOOR_MODE_IP_RELAY

ネットワークリレー

constant

2.0.0

static final int OPEN_DOOR_MODE_WIEGAND26_24_BIT

Member

説明

備考

導入バージョン

static final int WIEGAND26_24_BIT

WIEGAND26(24bit)

Constant

2.0.0

static final int WIEGAND26_8_16_BIT

WIEGAND26(8 + 16bit)

Constant

2.0.0

static final int WIEGAND32

Member

説明

備考

導入バージョン

static final int GPIO_IN_NONE

GPIO入力を構成していません

Constant

2.0.0

static final int GPIO_IN_DOOR_MAGNETISM

GPIO入力構成はドアマグネット

Constant

2.0.0

static final int GPIO_IN_DOOR_BUTTON

Member

説明

備考

導入バージョン

int mOpenDoorTime

ドアオープン時間

なし

2.0.0

int mOpenDoorMode

ドアオープンモード

なし

2.0.0

int mGpioOut

メンバー関数

説明

備考

導入バージョン

DoorAccessConfig build()

DoorAccessConfigインスタンスを構築

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

int getDeviceId()

デバイスIDを返

なし

2.0.0

void setConfig(DoorAccessConfig config)

デバイス構成を追加

なし

2.0.0

void destroyDevice()

メンバー関数

説明

備考

導入バージョン

void onRead(String cardNumber)

カード読み取りが成功し、カードナンバーを取得

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

void onDataReceived(byte[] cardData)

データ受信コールバック

cardData:カスタマイズされたWiegandカードナンバーデータ

2.0.0

メンバー関数

説明

備考

導入バージョン

byte[] analysis(String cardDataString)

カードstringはbyte[]データに解析されます

cardDataString:カードナンバーデータString カードナンバーに対応するカスタムWiegandデータを返す

2.0.0

メンバー関数

説明

備考

導入バージョン

void onDoorStateChanged(int state)

ドアマグネットステータスのコールバック

State 0-OFF, 1-ON

2.0.0

メンバー関数

説明

備考

導入バージョン

void onReceive()

消防シグナルのリスナー

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

void onReceive()

盗難アラートのリスナー

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

void onSensorChanged(String value)

データ変更コールバック

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

void onInfraredSignalRead()

IRコールバック

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

void onReceive(byte[] data,long dataLength)

RS485データ読み取りリスナー

dataLength:データ長; data: 読み取るデータ

2.0.0

メンバー関数

説明

備考

導入バージョン

void onTimeout(byte[] data,long dataLength)

RS485データ読み取りタイムアウトのコールバック

dataLength:データ長; data: タイムアウト時に読み取るデータ

2.0.0

メンバー関数

説明

備考

導入バージョン

void onClick()

ドアボタンのクリック状態のコールバック

なし

2.0.0

2.0.0

RS485を有効

2.0.0

2.0.0

WIEGAND26(24bit)

WIEGAND32

GPIO入力構成はドアボタン

GPIO出力ポート

デバイスを廃棄

識別エンジン

人間の顔1:1 比較、ローカル1:N 識別、サーバ1:N識別、マスク検知にサポート

機能類の説明

IdentifyManager

識別エンジンを操作する入り口

メンバー関数の説明

boolean setIdentifyTarget(Bitmap avatar)

個人の識別フィーチャーを設定

パラメータ

戻り値

例外

なし

ImageConfig getImageConfig()

画像構成を取得

パラメータ

なし

戻り値

ImageConfig

例外

なし

IdentifyConfig getIdentifyConfig()

識別エンジンのワークフロー構成を取得

パラメータ

なし

戻り値

IdentifyConfig

例外

なし

ThresholdConfig getThresholdConfig()

しきい値構成を取得

パラメータ

なし

戻り値

ThresholdConfig

例外

なし

void addFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

顔フィルターインターセプターを追加

パラメータ

戻り値

なし

例外

なし

void handleRgbData(byte[] data)

RGBデータをハンドル

パラメータ

戻り値

なし

例外

なし

void handleIrData(byte[] data)

IRデータをハンドル

パラメータ

戻り値

なし

例外

なし

void handleTemperatureData(Bitmap temperatureBitmap,float[] temperatureValue, int width, int height, FaceOrientation temperatureOrientation)

ヒートマップと関連データをハンドル

パラメータ

戻り値

なし

例外

なし

void init(ImageConfig imageConfig, IIdentifyResultCallback identifyResultCallback)

初期化

パラメータ

戻り値

なし

例外

なし

void pause()

顔認識を中止

パラメータ

なし

戻り値

なし

例外

なし

void resume()

顔認識を回復

パラメータ

なし

戻り値

なし

例外

なし

void release()

リソースを解放

パラメータ

なし

戻り値

なし

例外

なし

void removeFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

顔フィルターインターセプターを削除

パラメータ

戻り値

なし

例外

なし

void removeIdentifyTarget()

設定した個人の識別フィーチャーを削除

パラメータ

なし

戻り値

なし

例外

なし

void start()

識別を開始

パラメータ

なし

戻り値

なし

例外

なし

void stop()

識別を停止

パラメータ

なし

戻り値

なし

例外

なし

void setIdentifyCallback(IIdentifyResultCallback iIdentifyCallback)

識別結果コールバックを設定

パラメータ

戻り値

なし

例外

なし

void setVerifyMode(VerifyModeEnum verifyMode)

識別エンジンの検証モードを設定

パラメータ

戻り値

なし

例外

なし

void setThresholdConfig(ThresholdConfig thresholdConfig)

しきい値構成を設定

パラメータ

戻り値

なし

例外

なし

void setIdentifyConfig(IdentifyConfig identifyConfig)

識別エンジンワークフロー構成を設定

パラメータ

戻り値

なし

例外

なし

void setServerVerifyAction(IServerVerifyAction serverVerifyAction)

サーバの検証ロジックを設定

パラメータ

戻り値

なし

例外

なし

void setTemperatureSdkAction(ITemperatureSdkAction temperatureSdkAction)

温度検知アルゴリズムの動作を設定

パラメータ

戻り値

なし

例外

なし

エンティティの説明

ImageConfig

プロパティの説明

MidPixelFormat

プロパティの説明

FaceOrientation

プロパティの説明

IdentifyConfig

プロパティの説明

ThresholdConfig

プロパティの説明

IFaceFilterInterceptor

メソッドの説明

FaceInfo

プロパティの説明

VerifyModeEnum

プロパティの説明

IIdentifyResultCallback

メソッドの説明

FaceFilterResult

プロパティの説明

AttributeFilterResult

プロパティの説明

AttributeResult

プロパティの説明

FrameIdentifyResult

プロパティの説明

FaceIdentifyResult

プロパティの説明

TrackAndTemperatureResult

プロパティの説明

IdentifyResultTypeEnum

プロパティの説明

FaceSearchResult

プロパティの説明

IServerVerifyAction

メソッドの説明

ITemperatureSdkAction

プロパティの説明

void addFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

顔フィルターインターセプターを追加

2.0.0

void handleRgbData(byte[] data)

RGB画像データをハンドル

2.0.0

void handleIrData(byte[] data)

IR画像データをハンドル

2.0.0

void handleTemperatureData(Bitmap temperatureBitmap,float[] temperatureValue, int width, int height, FaceOrientation temperatureOrientation)

ヒートマップと関連データをハンドル

2.0.0

void init(ImageConfig imageConfig, IIdentifyResultCallback identifyResultCallback)

初期化

2.0.0

void pause()

顔認識を中止

2.0.0

void resume()

顔認識を回復

2.0.0

void release()

リソースを解放

2.0.0

void removeFaceFilterInterceptor(IFaceFilterInterceptor faceFilterInterceptor)

顔フィルターインターセプターを削除

2.0.0

void removeIdentifyTarget()

設定した個人の識別フィーチャーを削除

2.0.0

void start()

識別を開始

2.0.0

void stop()

識別を停止

2.0.0

void setIdentifyCallback(IIdentifyResultCallback iIdentifyCallback)

識別コールバックを設定

2.0.0

void setVerifyMode(VerifyModeEnum verifyMode)

識別エンジンの検証モードを設定

2.0.0

void setThresholdConfig(ThresholdConfig thresholdConfig)

しきい値構成を設定

2.0.0

void setIdentifyConfig(IdentifyConfig identifyConfig)

識別エンジンワークフロー構成を設定

2.0.0

void setServerVerifyAction(IServerVerifyAction serverVerifyAction)

サーバの検証ロジックを設定

2.0.0

void setTemperatureSdkAction([ITemperatureSdkAction] temperatureSdkAction)

温度検知アルゴリズムSDKの動作を設定

2.0.0

width

int

ヒートマップの幅

なし

2.0.0

height

int

ヒートマップの高さ

なし

2.0.0

temperatureOrientation

FaceOrientation

顔の方向

なし

2.0.0

pixelFormat

MidPixelFormat

カメラプレビューフレームデータのフォーマット

なし

2.0.0

faceOrientation

FaceOrientation

カメラプレビューフレームデータでの顔の向き

なし

2.0.0

なし

2.0.0

NV21

YUV 4:2:0

なし

2.0.0

BGRA8888

BGRA 8:8:8:8

なし

2.0.0

BGR888

BGR 8:8:8

なし

2.0.0

RGBA8888

RGBA 8:8:8:8

なし

2.0.0

RGB888

RGB 8:8:8

なし

2.0.0

GRAY16

特殊な画像フォーマット

回転および他フォーマットへの変換を提供しません

2.0.0

RGB565

RGB 5:6:5

なし

2.0.0

ABGR8888

ABGR 8:8:8:8

なし

2.0.0

なし

2.0.0

RIGHT

顔の向きが右

なし

2.0.0

thresholdConfig

ThresholdConfig

識別しきい値構成

なし

2.0.0

hasLiveness

boolean

生体検知のON/OFF

なし

2.0.0

isAlwaysLiveness

boolean

同じTrack IDに対して常に生体検知を実行するかを判定

なし

2.0.0

isSingleLiveness

boolean

シングルカメラによる生体検知かを判定

なし

2.0.0

hasTemperatureDetection

boolean

温度検知のON/OFF

なし

2.0.0

isMultiTemperatureDetection

boolean

複数人の温度検知のON/OFF

なし

2.0.0

hackNoPassCountThreshold

int

非生体と判定するための生体検知回数

なし

2.0.0

strangerCountThreshold

int

未登録者と判定するための比較回数

なし

2.0.0

irNoFaceCountThreshold

int

連続Nフレームで非生体と判定

なし

2.0.0

irAndRgbFaceMinDist

float

RGBカメラとIRカメラの最小距離しきい値

なし

2.0.0

isContinueVerify

boolean

同じTrack IDに対し識別結果を出した後識別を継続か

なし

2.0.0

irAndRgbFaceSizeThreshold

float

RGBとIR顔の差異しきい値

なし

2.0.0

continueVerifyIntervalTime

long

同じTrack IDに対し識別結果を出した後の時間間隔

なし

2.0.0

samePersonContinuousRecognitionInterval

long

同じユーザーIDに対する連続識別の間隔

このパラメータは個体に対するもので、continueVerifyIntervalTime によるコントロールより上層に位置する

2.0.0

isServerVerify

boolean

サーバ検証かを判定

なし

2.0.0

isMultiFaceVerify

boolean

複数人の顔識別シナリオかを判定

なし

2.0.0

detectSerialMultiFace

int

Trackingの際に何回のフレームごとに検知を1回実行するか

なし

2.0.0

isSenseGateConfig

boolean

SenseGateデバイスかを判定

SenseGateBDのBaseline 距離計算はPassシリーズとは異なる

2.0.0

isCheckCameraRotate

boolean

カメラの回転をチェックするかを判定

なし

2.0.0

isDoVerify

boolean

顔認識するかを判定

なし

2.0.0

isOpenWearMaskIdentify

boolean

マスク検知をオンにするかを判定

なし

2.0.0

isInnerEyeTempDetect

boolean

目元による温度検知するかを判定

なし

2.0.0

unSuccessTimeoutTimeThreshold

int

識別が成功できていないタイムオーバーの時間。すなわち、成功時にのみすぐ結果を返し、成功しない場合、タイムオーバーになってから失敗結果を返す

デフォルトは-1とし、この機能がオフにしていることを表す

2.0.0

faceMaxWidth

int

識別できる最大の顔の幅

なし

2.0.0

alignmentScore

float

マークされた顔のアラインメントスコア

なし

2.0.0

sharpness

float

顔の不鮮明さ

なし

2.0.0

yaw

float

横向き角度

横顔

2.0.0

pitch

float

上向き・下向きの角度

上向き、下向き

2.0.0

roll

float

傾きの角度

頭の傾き

2.0.0

livenessScore

float

生体検知のしきい値

なし

2.0.0

verifyScore

float

比較のしきい値

なし

2.0.0

maskVerifyScore

float

マスクつけた状態の比較しきい値

なし

2.0.0

occlusion

int[]

顔の遮蔽

なし

2.0.0

id

int

track id

なし

2.0.0

detectionScore

float

検知スコア

なし

2.0.0

alignmentScore

float

アラインメントスコア

なし

2.0.0

pointsCount

int

顔のポイントの数

なし

2.0.0

yaw

float

横向き角度

なし

2.0.0

pitch

float

上向き・下向き角度

なし

2.0.0

roll

float

傾きの角度

なし

2.0.0

なし

2.0.0

なし

2.0.0

void onDrawFaces(List<FaceInfo> faceInfoList)

スクリーンから顔を描画するコールバック

なし

2.0.0

void onUnknown(float faceW)

異常の顔をコールバック

人物が遠く立ち、生体検知が不正確の際にコールバック

void onCameraRotate(FaceOrientation forwardOrientation)

カメラローテーションのためのコールバックAPI

なし

2.0.0

void onFaceFilterResult(List<FaceFilterResult> faceFilterResults)

顔フィルターのコールバック

なし

2.0.0

void onAttributeFilterResult(List<AttributeFilterResult> attributeFilterResults)

属性フィルター結果

なし

2.0.0

void onIdentifyResult(List<FrameIdentifyResult> frameIdentifyResults)

顔識別のコールバック

なし

2.0.0

void onTrackAndTemperatureResult

(List<TrackAndTemperatureResult> results)

Trackと温度検知結果

なし

2.0.0

faceInfo

FaceInfo

顔情報

なし

2.0.0

attributeResult

AttributeResult

属性結果

なし

2.0.0

wearEyeGlass

boolean

メガネをつけているかを判定

なし

2.1.0

age

int

年齢を推測

なし

2.1.0

isMale

boolean

性別を推測

なし

2.1.0

isHasMustache

boolean

ひげがあるかを判定

なし

2.1.0

w

int

フレームの幅

なし

2.0.0

h

int

フレームの高さ

なし

2.0.0

orientation

FaceOrientation

顔の向き

なし

2.0.0

irCameraNv21Data

byte[]

認識結果に対応するIRフレームデータ

なし

2.0.0

temperatureValue

float[]

温度データ

なし

2.0.0

temperatureBitmap

Bitmap

温度ビットマップ

なし

2.0.0

temperatureWidth

int

温度ビットマップの幅

なし

2.0.0

temperatureHeight

int

温度ビットマップの高さ

なし

2.0.0

temperatureOrientation

FaceOrientation

温度ビットマップの顔向き

なし

2.0.0

faceIdentifyResults

List<FaceIdentifyResult>

認識結果リスト

なし

2.0.0

feature

byte[]

フィーチャー

なし

2.0.0

verifyScore

float

識別スコア

なし

2.0.0

livenessScore

float

生体検知スコア

なし

2.0.0

userId

int

ユーザーID

なし

2.0.0

trackAndTemperatureResult

TrackAndTemperatureResult

温度結果

なし

2.0.0

isMask

boolean

マスクをつけているかを判定

なし

2.0.0

identifyResultTypeEnum

IdentifyResultTypeEnum

認識結果

なし

2.0.0

faceSearchResult

FaceSearchResult

検索結果

なし

2.0.0

AttributeResult

AttributeResult

顔属性の結果

なし

2.1.0

temperature

float

温度値

なし

2.0.0

なし

2.0.0

VERIFY_SUCCESS

認識成功

なし

2.0.0

メンバー関数

説明

導入バージョン

boolean setIdentifyTarget(Bitmap avatar)

個人の識別フィーチャーを設定

2.0.0

ImageConfig getImageConfig()

画像構成を取得

2.0.0

IdentifyConfig getIdentifyConfig()

識別エンジンのワークフロー構成を取得

2.0.0

ThresholdConfig getThresholdConfig()

しきい値構成を取得

パラメータ名

型

説明

備考

導入バージョン

avatar

Bitmap

個人のID写真

なし

2.0.0

戻り値

説明

備考

導入バージョン

true

設定が成功しました

なし

2.0.0

false

設定に失敗しました

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

faceFilterInterceptor

IFaceFilterInterceptor

顔フィルターインターセプター

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

data

byte[]

画像データ

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

data

byte[]

画像データ

なし

2.0.0

パラメータ名

型

説明

備考

導入バージョン

temperatureBitmap

Bitmap

ヒートマップ

なし

2.0.0

temperatureValue

float[]

温度データ

なし

パラメータ名

型

説明

備考

導入バージョン

imageConfig

ImageConfig

画像構成

なし

2.0.0

identifyResultCallback

IIdentifyResultCallback

識別結果コールバック

なし

パラメータ名

型

説明

備考

導入バージョン

faceFilterInterceptor

IFaceFilterInterceptor

顔フィルターインターセプター

なし

2.0

パラメータ名

型

説明

備考

導入バージョン

iIdentifyCallback

IIdentifyResultCallback

識別結果コールバック

なし

2.0

パラメータ名

型

説明

備考

導入バージョン

verifyMode

VerifyModeEnum

検証モード

なし

2.0

パラメータ名

型

説明

備考

導入バージョン

thresholdConfig

ThresholdConfig

しきい値構成

なし

2.0

パラメータ名

型

説明

備考

導入バージョン

identifyConfig

IdentifyConfig

識別エンジンワークフロー構成

なし

2.0

パラメータ名

型

説明

備考

導入バージョン

serverVerifyAction

IServerVerifyAction

サーバの検証ロジック

なし

2.0

パラメータ名

型

説明

備考

導入バージョン

temperatureSdkAction

ITemperatureSdkAction

温度測定アルゴリズムの動作

なし

2.0

Member

型

説明

備考

導入バージョン

int previewW

int

カメラプレビュー解像度の幅

なし

2.0.0

int previewH

int

カメラプレビュー解像度の高さ

なし

Member

説明

備考

導入バージョン

GRAY8

Y 1

なし

2.0.0

YUV420P

YUV 4:2:0

なし

2.0.0

NV12

Member

説明

備考

導入バージョン

UP

顔の向きが上

なし

2.0.0

LEFT

顔の向きが左

なし

2.0.0

DOWN

Member

型

説明

備考

導入バージョン

debug

boolean

デバッグのON/OFF

なし

2.0.0

imageConfig

ImageConfig

識別フレーム情報構成

なし

Member

型

説明

備考

導入バージョン

verifyAreaRect

RectF

顔の枠

なし

2.0.0

faceMinWidth

int

識別できる最小の顔の幅

なし

メンバー関数

説明

備考

導入バージョン

T filterFace(FaceInfo faceInfo, byte[] data, MidPixelFormat midPixelFormat, int width, int height, FaceOrientation faceOrientation)

顔フィルター

なし

2.0.0

Member

型

説明

備考

導入バージョン

faceRect

Rect

顔の枠

なし

2.0.0

facePoints

PointF[]

顔のポイント

なし

Member

説明

備考

導入バージョン

MODE_1_N

1:N 比較モード

なし

2.0.0

MODE_1_1

1:1 比較モード

なし

2.0.0

MODE_SERVER_1_N

メンバー関数

説明

備考

導入バージョン

void onTrackResult(FaceInfo[] faces, byte[] rgbCameraData, byte[] irCameraData)

Track結果をコールバック

なし

2.0.0

void onNoFaceOverTime(byte[] rgbCameraData, byte[] irCameraData)

指定期間内に検知できた顔コールバックがない

なし

2.0.0

void onClearScreen()

Member

型

説明

備考

導入バージョン

code

int

結果コード

0は通過。0ではない場合フィルターされたことを意味。 フィルターされた場合、開発者はインターセプターapiでカスタマイズが必要

2.0.0

interceptorId

int

インターセプターID

なし

Member

Type

説明

備考

導入バージョン

code

int

結果コード

0は通過。0ではない場合フィルターされたことを意味。 具体的には各インターセプターでカスタマイズする

2.0.0

interceptorId

int

インターセプターID

なし

Member

Type

説明

備考

導入バージョン

rgbFace

FaceInfo

顔の情報

なし

2.0.0

wearMask

boolean

マスクをつけているかを判定

なし

Member

Type

説明

備考

導入バージョン

frameId

int

フレームID

なし

2.0.0

rgbCameraNv21Data

byte[]

認識結果に対応するRGBフレームデータ

なし

Member

Type

説明

備考

導入バージョン

faceInfo

FaceInfo

RGB 顔の情報

なし

2.0.0

irFaceInfo

FaceInfo

IR 顔の情報

なし

Member

Type

説明

備考

導入バージョン

faceInfo

FaceInfo

RGB顔の情報

なし

2.0.0

irFaceInfo

FaceInfo

IR顔の情報

なし

Member

説明

備考

導入バージョン

NON_LIVENESS

非生体

なし

2.0.0

LIVENESS

生体

なし

2.0.0

STRANGER

Member

Type

説明

備考

導入バージョン

userID

int

データベースに追加するときに定義したインデックス値

なし

2.0.0

score

float

最も似ているフィーチャー値スコア

なし

メンバー関数

説明

備考

導入バージョン

T verify( byte[] cameraData, byte[] feature,FaceInfo rgbFace, int width, int height)

顔の検索と認識

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

List temperCalculateAir(MatchFace[] matchFaces, Bitmap temperatureBitmap, float[] temperatureData, int temperatureWidth, int temperatureHeight, FaceOrientation temperatureOrientation)

複数人温度検知アルゴリズム

なし

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

YUV 4:2:0

顔の向きが下

2.0.0

2.0.0

2.0.0

サーバ認識 1:N モード

顔コールバックがない

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

未登録者

2.0.0

MqttApiClient

MQTTインターフェースの実装

MqttApiClient

メンバー関数

説明

導入バージョン

void connectMqtt(IMqttActionListener listener, IConnectionLost connectionLost, boolean useTokenConnect, SocketFactory socketFactory)

MQTT接続

2.0.0

メンバー関数の説明

void connectMqtt(IMqttActionListener listener, IConnectionLost connectionLost, boolean useTokenConnect, SocketFactory socketFactory)

MQTT接続

パラメータ

戻り値

なし

例外

なし

void disConnectMqtt(IMqttActionListener listener)

MQTT接続を切断

パラメータ

戻り値

なし

例外

なし

void getUserListInGroup(int groupId, MessageCallback callback)

あるグループでの登録者リストを取得

パラメータ

戻り値

なし

例外

なし

void registerGroupChangeListener(MessageCallback callback)

デバイスと登録者グループの変更コールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerUserInGroupChangeListener(int groupId, MessageCallback callback)

登録者グループの登録者変更コールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerWarningAction(MessageCallback callback)

アラートステータス変更コールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerAccessStrategy(MessageCallback callback)

アクセスルール変更コールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerUpgrade(MessageCallback callback)

APPとROMアップデートコールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerDeviceStatus(MessageCallback callback)

デバイスステータスコールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerDeviceConfig(MessageCallback callback)

デバイス構成変更コールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerDeviceNotify(MessageCallback callback)

デバイスサーバエンドの通知配信構コールバックを登録

パラメータ

戻り値

なし

例外

なし

void registerKeepDoorOpenOrCloseSchedule(MessageCallback callback)

デバイスのドア常時開/閉タイムテーブルの配信コールバックを登録

パラメータ

戻り値

なし

例外

なし

void unRegisterGroupChangeListener()

デバイスと登録者グループの変更コールバックの登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

void unegisterUserInGroupChangeListener(int groupId)

登録者グループの登録者変更コールバックの登録を取り消す

パラメータ

戻り値

なし

例外

なし

void unegisterGetUserListInGroup(int groupId)

あるグループでの登録者リストの登録を取り消す

パラメータ

戻り値

なし

例外

なし

void unRegisterWarningAction()

アラートステータス変更コールバックの登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

void unRegisterAccessStrategy()

アクセスルール変更コールバックの登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

void unRegisterUpgrade()

APPとROMアップデートコールバックの登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

void unRegisterDeviceStatus()

デバイスステータスコールバックの登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

void unRegisterDeviceConfig()

デバイス構成変更コールバックの登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

void unRegisterDeviceNotify()

デバイスサーバエンドの通知配信構コールバック登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

void unRegisterKeepDoorOpenOrCloseSchedule()

デバイスのドア常時開/閉タイムテーブルの配信コールバック登録を取り消す

パラメータ

なし

戻り値

なし

例外

なし

エンティティの説明

LanguageTypeEnum

プロパティの説明

ConnectConfigEntity

プロパティの説明

Result

プロパティの説明

メソッドの説明

AlarmReportParameter

プロパティの説明

VerticesItem

プロパティの説明

GuestDetailInfo

プロパティの説明

GroupsItem

プロパティの説明

TslCheckExistResult

プロパティの説明

TslLanguageCheckExistResult

プロパティの説明

FaceSearchResult

プロパティの説明

SearchResultItem

プロパティの説明

Content

プロパティの説明

FaceSearchParameter

プロパティの説明

ImagesItem

プロパティの説明

TargetInfo

プロパティの説明

Angle

プロパティの説明

Rectangle

プロパティの説明

VerticesItem

プロパティの説明

LandmarksItem

プロパティの説明

CameraInfo

プロパティの説明

GroupIndex

プロパティの説明

UserIndex

プロパティの説明

UserInfoResult

プロパティの説明

UserInfoParameter

プロパティの説明

DeviceGroups

プロパティの説明

DeviceDetailInfo

プロパティの説明

DeviceTypeMaxOnline

プロパティの説明

ServiceConfigItem

プロパティの説明

Options

プロパティの説明

Company

プロパティの説明

RsaResult

プロパティの説明

UserDetailInfo

プロパティの説明

DeptItem

プロパティの説明

ServerVersion

プロパティの説明

TimeTable

プロパティの説明

SpecialDay

プロパティの説明

QRResult

プロパティの説明

IdentifyQRCodeParameter

プロパティの説明

LoginResult

プロパティの説明

UserRspVO

プロパティの説明

DepartmentRouteItem

プロパティの説明

Device

プロパティの説明

MisrecognitionRecordParameter

プロパティの説明

RegisterResult

プロパティの説明

RegisterParameter

プロパティの説明

UserStatusParameter

プロパティの説明

ExceptionListItem

プロパティの説明

UserSyncStatusParameter

プロパティの説明

UserStatusListItem

プロパティの説明

DeviceReportEventParamer

プロパティの説明

DoorMagnetismReportEventContent

プロパティの説明

BluetoothReportEventContent

プロパティの説明

ThermalImagerReportEventContent

プロパティの説明

RecordResult

プロパティの説明

RecordParameter

プロパティの説明

DeviceVersionInfoParameter

プロパティの説明

IdentifyDataParameter

プロパティの説明

Depth

プロパティの説明

TslUploadParameter

プロパティの説明

TslLanguageUploadParameter

プロパティの説明

MessageParameter

プロパティの説明

MessageEventEnum

プロパティの説明

IConnectionLost

メソッドの説明

MessageCallback

メソッドの説明

useTokenConnect

boolean

トークンの方法で接続するかを判定

なし

2.0.0

socketFactory

SocketFactory

https構築するための検証方法

デフォルトとして証明書を検証しない

2.0.0

なし

2.0.0

JP

日本語

なし

2.0.0

KO

韓国語

なし

2.0.0

identifier

String

デバイス識別子

なし

2.0.0

duid

String

デバイスSN

なし

2.0.0

token

String

デバイストークン

なし

2.0.0

ldid

String

デバイスバックグラウンドの識別番号

なし

2.0.0

companyId

int

企業ID

なし

2.0.0

isNewDevice

boolean

新規デバイスかを判定

なし

2.0.0

message

String

メッセージ

なし

2.0.0

desc

String

説明

なし

2.0.0

originData

String

オリジナルデータ

なし

2.0.0

rawData

byte[]

バイナリーデータ

なし

2.0.0

なし

2.0.0

N

code

int

アラートコード

10001:解体盗難アラート

10002:ドア強行突破のアラート

10003:ドアマグネットのタイムオーバーアラート

10004:パスワード攻撃アラート 10005:Bluetooth電力不足 10006:サーマグラフィー接続以上

20001:カメラの汚れを意味

20002:非生体攻撃 20003:消防アラート

40001:フィーチャー抽出失敗

2.0.0

パラメータ"status"が1の場合、パラメータ"code"は必須。 そうでない場合は必須ではない

description

String

アラート説明

なし

2.0.0

N

eventTime

Long

イベント時間

ミリ秒

2.0.0

Y

status

int

アラートレポートイベント

1:アラートがあります 2:アラート解除失敗 3:アラート解除成功

2.0.0

Y

rectangle

List<VerticesItem>

顔枠の座標

1つ目は左上の座標

2つ目は右下の座標

2.0.0

N

userId

long

ユーザーID

なし

2.0.0

N

なし

2.0.0

Y

showAvatar

String

アバター表示

なし

2.0.0

name

String

氏名

なし

2.0.0

groups

List<GroupsItem>

グループ

なし

2.0.0

mobile

String

連絡先

なし

2.0.0

guestCompany

String

ビジター企業

なし

2.0.0

birthday

String

誕生日

なし

2.0.0

position

String

役職

なし

2.0.0

idNumber

String

IDナンバー

なし

2.0.0

icNumber

String

ICカードナンバー

なし

2.0.0

mail

String

メールアドレス

なし

2.0.0

guestPurpose

String

来訪目的

なし

2.0.0

receptionUserId

long

受付担当者ユーザーID

なし

2.0.0

receptionUserName

String

受付担当者ユーザー名

なし

2.0.0

dateTimeFrom

String

来訪有効の開始時間

なし

2.0.0

dateTimeTo

String

来訪有効の終了時間

なし

2.0.0

level

int

レベル

なし

2.0.0

remark

String

特記事項

なし

2.0.0

type

int

グループタイプ

1:登録者グループ

2:ビジターグループ

5:拒否リストグループ

2.0.0

personCount

int

人数

なし

2.0.0

timestamp

long

クライアントがリクエストした際のアップロードタイムスタンプ

なし

2.0.0

passRuleType

int

アクセスルールのタイプ

0: ローカルアクセスルール

1: サーバでのアクセスルール

2.0.0

sign

String

md5

The md5 Value of {timestamp}-{ldid}-{gateCtrl}-{passRuleType}

2.0.0

userId

int

ユーザーID

なし

2.0.0

userCardId

String

ユーザーのドアアクセスカードID

なし

2.0.0

userImage

Content

ユーザーライブラリ画像

なし

2.0.0

trackId

int

顔追跡id

なし

2.0.0

userName

String

ユーザー名

なし

2.0.0

displayMsg

String

表示メッセージ

なし

2.0.0

displayColor

String

表示カラー

なし

2.0.0

verifyCode

int

認証ステータスコード

1:未認証

2:認証済み

3:権限なし

4:マッチング失敗

5:アクセスタイムテーブル時間外

2.0.0

type

int

タイプ

なし

2.0.0

idNumber

String

IDナンバー

なし

2.0.0

sign

String

md5

the md5 Value of {verifyCode}-{timestamp}-{ldid}-{userId}

2.0.0

extra

String

拡張フィールドString

なし

2.0.0

url

String

図のurl

このurlかdataを選択

2.0.0

なし

2.0.0

N

receiveTime

long

タイムスタンプを受信

ミリ秒

2.0.0

N

fullImage

Content

フルサイズ画像

小さい画像スナップショットをアップロードすれば、フルサイズの画像は不要

2.0.0

Y

captureTime

long

スナップショットのタイプスタンプ

ミリ秒

2.0.0

N

cameraInfo

CameraInfo

カメラの共通情報

なし

2.0.0

N

timestamp

long

タイムスタンプ

ミリ秒

2.0.0

N

content

Content

画像コンテンツ

なし

2.0.0

imageType

int

画像タイプ

1:RGB図

2:IR図

2.0.0

mask

int

マスクをつけるかどうか

0:未受渡し

1:未着用

2:着用済

2.0.0

bodyTemperature

float

温度

なし

2.0.0

rectangle

Rectangle

顔枠

なし

2.0.0

landmarks

List<LandmarksItem>

オブジェクトのキーポイント座標

なし

2.0.0

quality

float

ターゲットの検知品質

[0.0, 1.0]

2.0.0

yaw

int

顔の回る角度

なし

2.0.0

tollgateId

String

カメラが所在するトールゲートID

なし

2.0.0

tollgateName

String

カメラが所在するトールゲート名

なし

2.0.0

cameraId

String

カメラID

なし

2.0.0

deviceType

String

カメラのハードウェアタイプ

なし

2.0.0

placeCode

String

カメラが所在するエリアのコード

なし

2.0.0

groupName

String

グループ名

なし

2.0.0

createdAt

long

生成したタイムスタンプ

なし

2.0.0

mail

String

メールアドレス

なし

2.0.0

gender

int

性別

0:不明

1:女性

2:男性

userName

String

ユーザー名

なし

2.0.0

phoneSuffix

String

携帯番号サフィックス

なし

2.0.0

createdAt

long

生成のタイムスタンプ

なし

2.0.0

remark

String

特記事項

なし

2.0.0

addChannel

int

追加チャネル

1:Web

2:SenseID

3:QR コード

4:OpenAPI

5: SenseHi App改変

6:バッチ処理ツール

type

int

ユーザータイプ

1:登録者

2:ビジター

3:拒否リスト

avatarShow

String

アート写真ID

なし

2.0.0

dateTimeTo

long

終了タイムスタンプ

なし

2.0.0

guestCompany

String

ビジター企業

なし

2.0.0

guestLevel

String

ビジターレベル

なし

2.0.0

feature

String

顔フィーチャー

なし

2.0.0

updatedAt

long

更新タイムスタンプ

なし

2.0.0

jobNumber

String

従業員番号

なし

2.0.0

icNumber

String

ICカードナンバー

なし

2.0.0

dateTimeFrom

long

開始タイムスタンプ

なし

2.0.0

entryTime

long

アクセス時間

なし

2.0.0

idNumber

String

IDナンバー

なし

2.0.0

companyId

int

ユーザー企業ID

なし

2.0.0

departmentId

int

ユーザー部署ID

なし

2.0.0

departmentName

String

部署名

なし

2.0.0

areaCode

String

エリアコード

なし

2.0.0

mobile

String

携帯番号

なし

2.0.0

permission

int

アクセス許可

0:許可

1:不許可

2.0.0

receptionUserId

int

ビジター受付のユーザーid

なし

2.0.0

avatar

String

アバターID

なし

2.0.0

countryCode

String

国・地域コード

なし

2.0.0

staffType

int

スタッフタイプ

1:従業員

2:インターン

2.0.0

userId

int

ユーザーID

なし

2.0.0

guestPurpose

String

来訪目的

なし

2.0.0

location

String

場所

なし

2.0.0

position

String

役職

なし

2.0.0

placeCode

String

地域コード

なし

2.0.0

prompt

String

カスタマイズメッセージ

なし

2.0.0

guestGroups

List<GroupsItem>

ビジターグループ

なし

2.0.0

denyListGroup

List<GroupsItem>

拒否リストグループ

なし

2.0.0

typeName

String

デバイスタイプ名

なし

2.0.0

userGroup

List<GroupsItem>

ユーザーグループ

なし

2.0.0

guestGroup

List<GroupsItem>

ビジターグループ

なし

2.0.0

typeId

int

デバイスタイプID

なし

2.0.0

name

String

デバイス名

なし

2.0.0

説明

String

デバイス説明情報

なし

2.0.0

location

String

デバイスロケーション

なし

2.0.0

id

int

デバイスID

なし

2.0.0

state

int

デバイス状態

0:オフライン

1:オンライン

2.0.0

direction

int

デバイスのInとOut方向

0:デフォルト

1:In

2:Out

2.0.0

typeId

int

デイバイスの所属するタイプID

なし

2.0.0

maxOnlineNum

int

デバイスの同時オンライン最大数

なし

2.0.0

id

String

デバイスID

なし

2.0.0

createBy

String

作成者ID

なし

2.0.0

background

String

背景

なし

2.0.0

contact

String

連絡者

なし

2.0.0

validTo

String

有効終了時間

なし

2.0.0

name

String

企業名

なし

2.0.0

updateAt

String

更新時間

なし

2.0.0

logo

String

企業ロゴ

なし

2.0.0

id

int

企業ID

なし

2.0.0

createAt

String

作成時間

なし

2.0.0

welcome

String

挨拶メッセージ

なし

2.0.0

introduction

String

企業案内

なし

2.0.0

userGroupId

int

ユーザーグループID

なし

2.0.0

rsaId

String

Key ID

なし

2.0.0

entryTime

String

アクセス時間

なし

2.0.0

idNumber

String

IDナンバー

なし

2.0.0

mail

String

メールアドレス

なし

2.0.0

areaCode

String

地域コード

なし

2.0.0

phoneSuffix

String

携帯番号サフィックス

なし

2.0.0

mobile

String

携帯番号

なし

2.0.0

groups

List<GroupsItem>

グループ情報

なし

2.0.0

remark

String

特記事項

なし

2.0.0

avatar

String

アバターID

なし

2.0.0

avatarShow

String

アート写真ID

なし

2.0.0

countryCode

String

国・地域コード

なし

2.0.0

name

String

ユーザー名

なし

2.0.0

location

String

場所

なし

2.0.0

departmentRoute

List<DeptItem>

部署

なし

2.0.0

id

long

ユーザーID

なし

2.0.0

position

String

役職

なし

2.0.0

jobNumber

String

従業員番号

なし

2.0.0

placeCode

String

場所コード

なし

2.0.0

department

int

部署ID

なし

2.0.0

prompt

String

カスタムメッセージ

なし

2.0.0

type

int

部署タイプ

なし

2.0.0

provider

String

プロバイダー

ST-BI, ST-JCV

2.0.0

product

String

プロダクト名

SenseLink, SenseLink GE

2.0.0

coreEdition

String

coreバージョン

なし

2.0.0

appEdition

String

アプリで表示するバージョン番号

なし

2.0.0

name

String

アクセスタイムテーブル名

なし

2.0.0

groupId

int

アクセスグループID

なし

2.0.0

monday

String

月曜日24hアクセスルール

なし

2.0.0

mondayPeriod

String

月曜日アクセスタイムテーブル

なし

2.0.0

tuesday

String

火曜日24hアクセスルール

なし

2.0.0

tuesdayPeriod

String

火曜日アクセスタイムテーブル

なし

2.0.0

wednesday

String

水曜日24hアクセスルール

なし

2.0.0

wednesdayPeriod

String

水曜日アクセスタイムテーブル

なし

2.0.0

thursday

String

木曜日24hアクセスルール

なし

2.0.0

thursdayPeriod

String

木曜日アクセスタイムテーブル

なし

2.0.0

friday

String

金曜日24hアクセスルール

なし

2.0.0

fridayPeriod

String

金曜日アクセスタイムテーブル

なし

2.0.0

saturday

String

土曜日24hアクセスルール

なし

2.0.0

saturdayPeriod

String

土曜日アクセスタイムテーブル

なし

2.0.0

sunday

String

日曜日24hアクセスルール

なし

2.0.0

sundayPeriod

String

日曜日アクセスタイムテーブル

なし

2.0.0

holiday

String

休日24hアクセスルール

なし

2.0.0

holidayPeriod

String

休日アクセスタイムテーブル

なし

2.0.0

startTimestamp

long

開始タイムスタンプ

ミリ秒

2.0.0

endTimestamp

long

終了タイムスタンプ

ミリ秒

2.0.0

specialDayList

List<SpecialDay>

特別日

なし

2.0.0

remark

String

特記事項

なし

2.0.0

idNumber

String

IDナンバー

なし

2.0.0

userId

int

ユーザーID

なし

2.0.0

userImage

Content

ユーザーライブライ写真

なし

2.0.0

userCardId

String

ユーザーのドアアクセスカードID

なし

2.0.0

userName

String

ユーザー名

なし

2.0.0

entryStatus

int

ステータスコード

1:通過

2:QRコード不正

3:QRコード解析失敗

4:QRコードコンテンツエラー

5:QRコード無効

6:QRコードが有効期間外

7:QRコードに通行回数なし

8:QRコードが対応する人物が無効

2.0.0

sign

String

md5

The md5 Value of {entryStatus}-{timestamp}-{ldid}-{userId}-{passRuleType}

2.0.0

type

int

ユーザータイプ

1:登録者

2:ビジター

3:未登録者

4:非生体

5:拒否リスト

2.0.0

timestamp

long

クライアントがアップロードするタイムスタンプ

なし

2.0.0

passRuleType

int

アクセスルールコントロールのタイプ

なし

2.0.0

なし

2.0.0

Y

companyId

int

企業ID

なし

2.0.0

defaultGuestGroupId

int

デフォルトユーザーグループID

なし

2.0.0

threshold

int

顔検知しきい値

なし

2.0.0

newDeviceKey

boolean

新規デバイス

なし

2.0.0

token

String

トークン

なし

2.0.0

deviceTypeMaxOnline

DeviceTypeMaxOnline

最大のオンラインデバイス情報

なし

2.0.0

accountId

int

アカウントID

なし

2.0.0

name

String

氏名

なし

2.0.0

userRspVO

UserRspVO

ユーザー情報

なし

2.0.0

company

Company

企業情報

なし

2.0.0

lang

String

言語

なし

2.0.0

device

Device

デバイス情報

なし

2.0.0

account

String

アカウント名

なし

2.0.0

entryTime

String

入社日

なし

2.0.0

idNumber

String

IDナンバー

なし

2.0.0

mail

String

メールアドレス

なし

2.0.0

areaCode

String

場所コード

なし

2.0.0

phoneSuffix

String

携帯番号サフィックス

なし

2.0.0

mobile

String

携帯番号

なし

2.0.0

groups

List<GroupsItem>

ユーザーグループID

なし

2.0.0

remark

String

特記事項

なし

2.0.0

avatar

String

アバターID

なし

2.0.0

avatarShow

String

アート写真ID

なし

2.0.0

countryCode

String

国・地域コード

なし

2.0.0

name

String

氏名

なし

2.0.0

departmentRoute

List<DepartmentRouteItem>

部署

なし

2.0.0

location

String

場所

なし

2.0.0

id

Integer

ユーザーID

なし

2.0.0

jobNumber

String

従業員番号

なし

2.0.0

placeCode

String

地域コード

なし

2.0.0

position

String

役職

なし

2.0.0

department

Integer

部署ID

なし

2.0.0

type

int

部署タイプ

なし

2.0.0

typeId

int

デバイスタイプ

なし

2.0.0

name

String

デバイ名

なし

2.0.0

updateAt

String

更新時間

なし

2.0.0

description

String

説明

なし

2.0.0

location

String

デバイス場所

なし

2.0.0

id

int

デバイスID

なし

2.0.0

softwareVersion

String

デバイスソフトウエアのバージョン

なし

2.0.0

createAt

String

作成時間

なし

2.0.0

direction

int

デバイスInとOutの方向

なし

2.0.0

info

String

情報

なし

2.0.0

content

String

特記事項

なし

2.0.0

typeId

int

デバイスタイプID

なし

2.0.0

name

String

デバイス

なし

2.0.0

updateAt

String

更新時間

なし

2.0.0

description

String

デバイス説明

なし

2.0.0

location

String

デバイス場所

なし

2.0.0

id

int

デバイスID

なし

2.0.0

softwareVersion

String

デバイスソフトウエアのバージョン

なし

2.0.0

createAt

String

作成時間

なし

2.0.0

direction

int

デバイスInとOutの方向

なし

2.0.0

info

String

デバイスInfo

なし

2.0.0

0:デフォルト

1:In

2:Out

2.0.0

Y

location

String

デバイス場所説明

なし

2.0.0

N

description

String

デバイス説明

なし

2.0.0

N

softwareVersion

String

ソフトウェアのバージョン

なし

2.0.0

N

info

String

その他の情報

なし

2.0.0

N

totalUserCount

int

ユーザー総数

なし

2.0.0

なし

2.0.0

Y

totalUserCount

int

ユーザー総数

なし

2.0.0

Y

action

int

タイプ

0:デバイスの全ユーザーステータスをアップロード

1:デバイスの異常ユーザーステータスをアップロード

2.0.0

Y

1: DoorMagnetismReportEventContent

2: BluetoothReportEventContent

3: ThermalImagerReportEventContent

2.0.0

Y

ミリ秒

2.0.0

Y

なし

2.0.0

N

signAvatar

String

顔写真

なし

2.0.0

N

signBgAvatar

String

バックグラウンド図

なし

2.0.0

N

signTime

long

打刻時間

なし

2.0.0

Y

type

int

従業員タイプ

1:登録者

2:ビジター

3:未登録者

4:非生体

999: その他

2.0.0

Y

abnormalType

int

異常レコードタイプ

0:なし

10001:人物とIDがマッチしない

10002:人物とカードがマッチしない

10003:人物とコードがマッチしない

20001:ビジターは有効期間外 20002:アクセスタイムテーブル時間外

30001:無効なIDカード

30002:無効なICカード

30003:無効なQRコード

2.0.0

N

idNumber

String

IDナンバー

なし

2.0.0

N

icNumber

String

社員カード

なし

2.0.0

N

idInfo

String

IDカードのその他の情報

Json String

2.0.0

N

inTime

int

すぐアップロードするか

はい:1

いいえ:0

2.0.0

Y

mode

int

デバイスモード

1:顔認証かカード

2:顔認証+カード

3:顔認証かIDカード

4:顔認証+ID Card

5:顔認証+IDカードによる予約

6:顔認証かQRコード

7:顔認証とQRコード

8:Bluetooth

9:顔認証

10:顔認証かQRコードかカード

2.0.0

Y

rectangle

List<VerticesItem>

顔枠

左上の座標、右下の座標

2.0.0

N

entryMode

int

アクセスモード

1:顔認証

2:QRコード

3:カード

4:顔認証+カード

5:IDカード

6:顔認証+IDカード

7:顔認証+IDカードによる予約

8:顔認証かつQRコード

9:Bluetooth

2.0.0

N

pushOption

int

レコード配信

1:はい

0:いいえ

2.0.0

N

wearMaskType

int

マスクステータス

0:ステータスなし(マスク検知オフ)

1:マスク未着用 2:マスク着用中

2.0.0

N

verifyScore

float

認識スコア

なし

2.0.0

N

docPhoto

String

IDカード写真

なし

2.0.0

N

heatAvatar

String

ヒートマップ

なし

2.0.0

N

bodyTemperature

float

温度

なし

2.0.0

N

remark

String

特記事項

なし

2.0.0

N

なし

2.0.0

Y

apkVersionCode

String

apkバージョンコード

なし

2.0.0

Y

packageName

String

パッケージ名

なし

2.0.0

Y

model

String

モデル

なし

2.0.0

Y

serialNumber

String

デバイスシリアルナンバー

なし

2.0.0

Y

romSoftwareVersion

String

ROMソフトウエアバージョン

なし

2.0.0

Y

manufacturer

String

メーカー

なし

2.0.0

Y

userId

int

ユーザーID

なし

2.0.0

recordId

int

レコードid

なし

2.0.0

type

int

データタイプ

1:ライブラリーでの人物

2:未登録者

3:生体

4:非生体

2.0.0

height

int

Depthデータ高さ

なし

2.0.0

en,zh,zh-tw

2.0.0

Y

event

MessageEventEnum

イベント

なし

2.0.0

captcha

String

認証コード

なし

2.0.0

なし

2.0.0

void disConnectMqtt(IMqttActionListener listener)

MQTT接続を切断

2.0.0

void getUserListInGroup(int groupId, MessageCallback callback)

あるグループでの登録者リストを取得

2.0.0

void registerGroupChangeListener(MessageCallback callback)

デバイスと登録者グループの変更コールバックを登録

2.0.0

void registerUserInGroupChangeListener(int groupId, MessageCallback callback)

登録者グループの登録者変更コールバックを登録

2.0.0

void registerWarningAction(MessageCallback callback)

アラームステータス変更コールバックを登録

2.0.0

void registerAccessStrategy(MessageCallback callback)

アクセスルール変更コールバックを登録

2.0.0

void registerUpgrade(MessageCallback callback)

APPとROMアップデートコールバックを登録

2.0.0

void registerDeviceStatus(MessageCallback callback)

デバイスステータスコールバックを登録

2.0.0

void registerDeviceConfig(MessageCallback callback)

デバイス構成変更コールバックを登録

2.0.0

void registerDeviceNotify(MessageCallback callback)

デバイスサーバエンドの通知配信構コールバックを登録

2.0.0

void registerKeepDoorOpenOrCloseSchedule

(MessageCallback callback)

デバイスのドア常時開/閉タイムテーブルの配信コールバックを登録

2.0.0

void unRegisterGroupChangeListener()

デバイスと登録者グループの変更コールバックの登録を取り消す

2.0.0

void unegisterUserInGroupChangeListener(int groupId)

登録者グループの登録者変更コールバックの登録を取り消す

2.0.0

void unegisterGetUserListInGroup(int groupId)

あるグループでの登録者リストの登録を取り消す

2.0.0

void unRegisterWarningActio()

アラームステータス変更コールバックの登録を取り消す

2.0.0

void [unRegisterAccessStrategy()

アクセスルール変更コールバックの登録を取り消す

2.0.0

void unRegisterUpgrade()

APPとROMアップデートコールバックの登録を取り消す

2.0.0

void unRegisterDeviceStatus()

デバイスステータスコールバックの登録を取り消す

2.0.0

void unRegisterDeviceConfig()

デバイス構成変更コールバックの登録を取り消す

2.0.0

void unRegisterDeviceNotify()

デバイスサーバエンドの通知配信構コールバック登録を取り消す

2.0.0

void unRegisterKeepDoorOpenOrCloseSchedule()

デバイスのドア常時開/閉タイムテーブルの配信コールバック登録を取り消す

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

listener

IMqttActionListener

コールバック

なし

2.0.0

connectionLost

IConnectionLost

接続切断のコールバック

なし

パラメータ名

Type

説明

備考

導入バージョン

listener

IMqttActionListener

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

groupId

int

グループID

なし

2.0.0

callback

MessageCallback

コールバック

なし

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

groupId

int

グループID

なし

2.0.0

callback

MessageCallback

コールバック

なし

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

callback

MessageCallback

コールバック

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

groupId

int

グループID

なし

2.0.0

パラメータ名

Type

説明

備考

導入バージョン

groupId

int

グループID

なし

2.0.0

Member

説明

備考

導入バージョン

ZH

中国語簡体字

なし

2.0.0

ZH_TW

中国語繁体字

なし

2.0.0

EN

Member

Type

説明

備考

導入バージョン

account

String

アカウント

なし

2.0.0

password

String

パスワード

なし

Member

Type

説明

備考

導入バージョン

code

int

ステータスコード

なし

2.0.0

data

T

データ

なし

メンバー関数

説明

備考

導入バージョン

boolean isSuccess()

リクエストが成功したかどうか

true:成功

false:失敗

2.0.0

Member

Type

説明

備考

導入バージョン

必須

traceId

String

アラートシリアルナンバー

なし

2.0.0

Y

alarmPhoto

String

Member

Type

説明

備考

導入バージョン

必須

x

int

x座標

なし

2.0.0

Y

y

int

Member

Type

説明

備考

導入バージョン

id

long

ビジターID

なし

2.0.0

avatar

String

比較対象のアバター

なし

Member

Type

説明

備考

導入バージョン

id

int

グループID

なし

2.0.0

name

String

グループ名

なし

Member

Type

説明

備考

導入バージョン

flag

int

フラッグ

0:存在しない 1:存在

2.0.0

Member

Type

説明

備考

導入バージョン

flag

int

フラッグ

0:存在しない 1:存在

2.0.0

md5

String

File md5

なし

Member

Type

説明

備考

導入バージョン

searchResult

List<SearchResultItem>

検索結果

なし

2.0.0

gateCtrl

boolean

ドアオープンかを判定

なし

Member

Type

説明

備考

導入バージョン

faceCutImage

Content

顔のカット写真

なし

2.0.0

score

float

認識スコア

なし

Member

Type

説明

備考

導入バージョン

data

String

オリジナル図データ

このdataかurlを選択

2.0.0

format

String

図のタイプ

IMAGE_UNKNOWN, IMAGE_JPEG, IMAGE_PNG, IMAGE_BMP, IMAGE_TIFF, IMAGE_GIF

Member

Type

説明

備考

導入バージョン

必須

targetImages

ImagesItem

小さい画像スナップショットの配列

フルサイズの画像をアップロードすれば、小さい画像は不要

2.0.0

N

extraInfo

String

Member

Type

説明

備考

導入バージョン

detectionMode

String

検知モード

DETECT_MODE_AUTO:TargetAnnotation.rectangleとスナップショットのサイズに従って自動的に検知枠を選択。 DETECT_MODE_BOUNDING_ONLY:TargetAnnotation.rectangleのみ使用。Rectangleを渡さないとなりません。そうでない場合、無効targetになりる。 DETECT_MODE_FORCE_DETECTION:検知のために検知モードの利用が必須となる

2.0.0

targetInfo

TargetInfo

共通スナップショット目標情報の構造

なし

Member

Type

説明

備考

導入バージョン

trackId

int

Track ID

なし

2.0.0

angle

Angle

顔角度の情報

なし

Member

Type

説明

備考

導入バージョン

roll

int

顔の傾き角度

なし

2.0.0

pitch

int

顔の上向き・下向き角度

なし

Member

Type

説明

備考

導入バージョン

vertices

List<VerticesItem>

ターゲットの矩形エリア

左上の座標

右下の座標

2.0.0

Member

Type

説明

備考

導入バージョン

x

int

X座標

なし

2.0.0

y

int

Y座標

なし

Member

Type

説明

備考

導入バージョン

x

int

X座標

なし

2.0.0

y

int

Y座標

なし

Member

Type

説明

備考

導入バージョン

placeName

String

カメラが所在するエリア名

なし

2.0.0

deviceId

String

カメラハードウェアID

なし

Member

Type

説明

備考

導入バージョン

updatedAt

long

更新したタイムスタンプ

なし

2.0.0

groupId

int

グループID

なし

Member

Type

説明

備考

導入バージョン

userUpdatedAt

long

ユーザーの更新時間

なし

2.0.0

userId

int

ユーザーID

なし

Member

Type

説明

備考

導入バージョン

birthday

String

誕生日

なし

2.0.0

modelVersion

String

モデルバージョン

なし

Member

Type

説明

備考

導入バージョン

userIds

List

ユーザーID配列

1回最大20,000配列

2.0.0

modelVersion

String

モデルバージョン

なし

Member

Type

説明

備考

導入バージョン

id

String

デバイスID

なし

2.0.0

userGroups

List<GroupsItem>

ユーザーグループ

なし

Member

Type

説明

備考

導入バージョン

deviceTypeMaxOnline

DeviceTypeMaxOnline

デバイスタイプの最大オンライン数

なし

2.0.0

ldid

String

デバイスLDID

なし

Member

Type

説明

備考

導入バージョン

companyId

int

デバイスの所属する企業ID

なし

2.0.0

serviceConfig

List<ServiceConfigItem>

サーバ構成

なし

Member

Type

説明

備考

導入バージョン

name

String

デバイス名

なし

2.0.0

options

List<Options>

カスタマイズオプション

なし

Member

Type

説明

備考

導入バージョン

text

String

テキストフィールド

なし

2.0.0

value

String

対応するコンテンツ

なし

Member

Type

説明

備考

導入バージョン

guestGroupId

int

ビジターグループID

なし

2.0.0

validFrom

String

有効開始時間

なし

Member

Type

説明

備考

導入バージョン

empoent

String

e1

なし

2.0.0

module

String

素数積

なし

Member

Type

説明

備考

導入バージョン

birthday

String

誕生日

なし

2.0.0

icNumber

String

ICカードナンバー

なし

Member

Type

説明

備考

導入バージョン

name

String

部署名

なし

2.0.0

id

int

部署ID

なし

Member

Type

説明

備考

導入バージョン

date

String

日付

for example 20190815

2.0.0

edition

String

バージョン

for example 1.11.0.2

Member

Type

説明

備考

導入バージョン

id

long

アクセスルールID

なし

2.0.0

ruleId

long

ルールID

なし

Member

Type

説明

備考

導入バージョン

id

long

特別日ID

なし

2.0.0

date

String

日付

なし

Member

Type

説明

備考

導入バージョン

entryTimeLeft

int

残りアクセス可能回数

なし

2.0.0

entryHint

String

通行メッセージ

なし

Member

Type

説明

備考

導入バージョン

必須

content

String

QRコードコンテンツ

なし

2.0.0

Y

timestamp

long

Member

Type

説明

備考

導入バージョン

defaultUserGroupId

int

デフォルトユーザーグループID

なし

2.0.0

role

int

ロール

なし

Member

Type

説明

備考

導入バージョン

birthday

String

誕生日

なし

2.0.0

icNumber

String

ICカードナンバー

なし

Member

Type

説明

備考

導入バージョン

name

String

部署名

なし

2.0.0

id

int

部署ID

なし

Member

Type

説明

備考

導入バージョン

ldid

String

デバイスUDID

なし

2.0.0

companyId

int

デバイスの所属する企業ID

なし

Member

Type

説明

備考

導入バージョン

recordId

String

識別レコードid

なし

2.0.0

type

int

誤認識タイプ

1:別人 2:未登録者

3:非生体

4:未登録者アタック

5:非生体アタック

Member

Type

説明

備考

導入バージョン

ldid

String

デバイスLDID

なし

2.0.0

companyId

int

デバイスの所属する企業ID

なし

Member

Type

説明

備考

導入バージョン

必須

name

String

デバイスName

なし

2.0.0

Y

direction

int

Member

Type

説明

備考

導入バージョン

exceptionList

List<ExceptionListItem>

例外リスト

なし

2.0.0

verifyModelVersion

String

検証モデルバージョン

なし

Member

Type

説明

備考

導入バージョン

code

int

ステータスコード

なし

2.0.0

userId

int

ユーザーID

なし

Member

Type

説明

備考

導入バージョン

必須

statusList

List<UserStatusListItem>

ユーザーステータスリスト

なし

2.0.0

Y

verifyModelVersion

String

Member

Type

説明

備考

導入バージョン

status

int

ステータスコード

1:同期中、 2:ノーマルフィーチャー、 3:画像ダウンロード失敗、 4:画像解析失敗、 5:フィーチャー抽出失敗

2.0.0

userIds

int[]

ユーザーID配列

なし

Member

Type

説明

備考

導入バージョン

必須

type

int

イベントタイプ

1:ドアマグネットイベント

2:Bluetooth電力

3:サーモグラフィーステータス

2.0.0

Y

content

BaseDeviceReportEventContent

Member

Type

説明

備考

導入バージョン

必須

status

int

イベントのステータス

1:ON

2:OFF

3:なし

2.0.0

Y

timestamp

long

Member

Type

説明

備考

導入バージョン

必須

power

int

バッテリーの残量

0-100

2.0.0

Y

Member

Type

説明

備考

導入バージョン

必須

status

int

イベントのステータス

0:不明

1:接続済

2:未接続

2.0.0

Y

Member

Type

説明

備考

導入バージョン

recordId

String

レコードID

なし

2.0.0

Member

Type

説明

備考

導入バージョン

必須

userId

int

ユーザーID

なし

2.0.0

N

username

String

Member

Type

説明

備考

導入バージョン

必須

apkVersionName

String

apkバージョン名

なし

2.0.0

Y

romHardwareVersion

String

Member

Type

説明

備考

導入バージョン

images

List<ImagesItem>

日付

なし

2.0.0

depth

Depth

Depthデータ

なし

Member

Type

説明

備考

導入バージョン

data

String

Depthデータコンテンツ

なし

2.0.0

width

int

Depthデータ幅

なし

Member

Type

説明

備考

導入バージョン

必須

content

String

Tsl json String

なし

2.0.0

Y

Member

Type

説明

備考

導入バージョン

必須

content

String

言語パッケージコンテンツ

なし

2.0.0

Y

lang

String

Member

Type

説明

備考

導入バージョン

mobile

String

携帯番号

なし

2.0.0

areaCode

String

地域コード

なし

Member

説明

備考

導入バージョン

LOGIN

ログイン

なし

2.0.0

CHANGE_INFO

変更情報

なし

2.0.0

VALIDATE

メンバー関数

説明

備考

導入バージョン

void onConnectionLost(Throwable cause)

接続が失われた際のコールバック

なし

2.0.0

メンバー関数

説明

備考

導入バージョン

void success(MqttMessage msg)

情報受信のコールバック

なし

2.0.0

void error(int code, String msg, Throwable throwable)

失敗時のコールバック

なし

2.0.0

2.0.0

2.0.0

2.0.0

English

2.0.0

2.0.0

アラート写真

y座標

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

拡張フィールドString

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

タイムスタンプ

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

2.0.0

デバイス方向

2.0.0

2.0.0

検証モードバージョン

2.0.0

イベントに対応するコンテンツ

イベント発生時間

ユーザー名

ROMハードウエアバージョン

2.0.0

2.0.0

言語

2.0.0

検証