下载sdk,并导入架包
添加权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA"/> package com.example.face; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Environment; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import com.iflytek.cloud.FaceRequest; import com.iflytek.cloud.RequestListener; import com.iflytek.cloud.SpeechConstant; import com.iflytek.cloud.SpeechError; import com.iflytek.cloud.SpeechUtility; import java.io.ByteArrayOutputStream; public class MainActivity extends AppCompatActivity { private ImageView imageView1; private static final int REQUESR_CODE_CAPTURE_CAMERA=0x1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView1=findViewById(R.id.imageView); SpeechUtility.createUtility(this, SpeechConstant.APPID+"=5ce4a75c"); } //人脸注册 public void regClick(View view){ Intent getImageByCamera=new Intent("android.media.action.IMAGE_CAPTURE"); startActivityForResult(getImageByCamera,REQUESR_CODE_CAPTURE_CAMERA); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { if (requestCode== Activity.RESULT_OK&&requestCode==REQUESR_CODE_CAPTURE_CAMERA){ Bitmap bitmap= (Bitmap) data.getExtras().get("data"); imageView1.setImageBitmap(bitmap); FaceRequest face=new FaceRequest(this); face.setParameter(SpeechConstant.WFR_SST,"reg"); face.setParameter(SpeechConstant.AUTH_ID,"csy123"); //把bitmap转换成字节数组 ByteArrayOutputStream out=new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG,100,out); byte[] imgData=out.toByteArray(); face.sendRequest(imgData,mRequestListener); } } private RequestListener mRequestListener=new RequestListener() { @Override public void onEvent(int i, Bundle bundle) { } @Override public void onBufferReceived(byte[] bytes) { } @Override public void onCompleted(SpeechError speechError) { if (speechError==null){ Toast.makeText(MainActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); } } }; }在onActivityResult方法出加以下代码
else if (requestCode== Activity.RESULT_OK&&requestCode==REQUESR_CODE_CAPTURE_CAMERA_LOGIN){ Bitmap bitmap= (Bitmap) data.getExtras().get("data"); imageView1.setImageBitmap(bitmap); FaceRequest face=new FaceRequest(this); face.setParameter(SpeechConstant.MFV_SST,"verify"); face.setParameter(SpeechConstant.AUTH_ID,"csy1234"); // 设置验证模式,单一验证模式:sin face.setParameter(SpeechConstant.MFV_VCM, "sin"); //把bitmap转换成字节数组 ByteArrayOutputStream out=new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG,100,out); byte[] imgData=out.toByteArray(); face.sendRequest(imgData,mRequestListener); }
监听器函数中加
@Override public void onBufferReceived(byte[] bytes) { String json=new String(bytes); Log.i("tag",json); }