当前位置: 首页 > news >正文

北京网站制作招聘网站的seo是什么意思

北京网站制作招聘,网站的seo是什么意思,灵感来源网站,如何查询企业电话号码说明#xff1a; 此文使用华为SDK、百度SDK、百度在线API三种方式实现。 一、使用华为SDK实现身份证识别#xff1a; 说明#xff1a;免费#xff0c;不需要联网。 1.AndroidManifest.xml添加权限#xff1a;uses-permission android:nameandroid.permissio…说明 此文使用华为SDK、百度SDK、百度在线API三种方式实现。 一、使用华为SDK实现身份证识别 说明免费不需要联网。 1.AndroidManifest.xml添加权限uses-permission android:nameandroid.permission.INTERNET / uses-permission android:nameandroid.permission.CAMERA/ uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE/ uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/uses-feature android:nameandroid.hardware.camera / uses-feature android:nameandroid.hardware.camera.autofocus / 2. 工程根目录build.gradle buildscript {repositories {//...省略之前配的其他地址maven { url https://developer.huawei.com/repo/ }}dependencies {//...省略之前配的其他地址classpath com.huawei.agconnect:agcp:1.6.0.300} }allprojects {repositories {//...省略之前配的其他地址maven { url https://developer.huawei.com/repo/ }} } 3.工程/app/build.gradle//...省略之前配的其他地址 apply plugin: com.huawei.agconnect android {//...省略之前配的其他地址packagingOptions {exclude lib/arm64-v8a/libmsoptimize.so} } dependencies {//...省略之前配的其他地址implementation com.huawei.hms:ml-computer-card-icr-cn:2.0.3.303implementation com.huawei.hms:ml-computer-vision-ocr:2.0.5.301implementation com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.5.301implementation com.huawei.hms:ml-computer-vision-ocr-jk-model:2.0.5.301implementation com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.5.301implementation com.huawei.hms:ml-computer-card-gcr-plugin:2.0.1.301 } 4.调用身份证SDK(1)身份证识别业务类 public class HWIDCardScanBiz {private static HWIDCardScanBiz I;public static HWIDCardScanBiz I() {if (I null) {I new HWIDCardScanBiz();}return I;}/*** 打开身份证识别页调用之前要申请蓝牙动态权限*/public void startIDCardScanActivity(Context context, IDCardScanCallback callback) {MLCnIcrCaptureConfig config new MLCnIcrCaptureConfig.Factory().setFront(true).create();MLCnIcrCapture icrCapture MLCnIcrCaptureFactory.getInstance().getIcrCapture(config);icrCapture.capture(new HWIDScanCallback(callback), context);}private class HWIDScanCallback implements MLCnIcrCapture.CallBack {private IDCardScanCallback callback;public HWIDScanCallback(IDCardScanCallback callback) {this.callback callback;}/*** 识别成功回调*/Overridepublic void onSuccess(MLCnIcrCaptureResult result) {if (result null) {Toast.makeText(XApp.Companion.getContext(), 识别失败, Toast.LENGTH_SHORT);return;}if (callback ! null) {IDCardInfo info new IDCardInfo(result.name, result.sex, result.nation, result.birthday, result.address, result.idNum, result.authority, result.validDate, result.sideType);callback.onIDCardResult(info);}}Overridepublic void onCanceled() {}Overridepublic void onFailure(int retCode, Bitmap bitmap) {Toast.makeText(XApp.Companion.getContext(), 识别失败, Toast.LENGTH_SHORT);}Overridepublic void onDenied() {}}public interface IDCardScanCallback {void onIDCardResult(IDCardInfo result);} } (2)调用识别业务类更新UI HWIDCardScanBiz.I().startIDCardScanActivity(context, new HWIDCardScanBiz.IDCardScanCallback() {Overridepublic void onIDCardResult(IDCardInfo result) {/* result.name: 姓名 result.sex性别 result.nation国籍 result.birthday生日 result.address地址 result.idNum身份证号 result.validDate有效期*/} }); 二、使用百度云SDK实现身份证识别 说明免费额度个人帐户每月1千次/企业帐户每月2千次要联网。 1.添加配置 (1)AndroidManifest.xml添加权限uses-permission android:nameandroid.permission.INTERNET / uses-permission android:nameandroid.permission.CAMERA/ uses-permission android:nameandroid.permission.READ_EXTERNAL_STORAGE/ uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/uses-feature android:nameandroid.hardware.camera / uses-feature android:nameandroid.hardware.camera.autofocus / (2)proguard-rules.pro添加混淆例外-keep class com.baidu.ocr.sdk.**{*;} -dontwarn com.baidu.ocr.** (3)将ocrsdk.aar放入工程根\app\libs目录下。(4)将ocr_ui模块工程放入工程根目录下在settings.gradle中添加导入模块工程的配置include :app, ocrsdk, ocr_ui (5)工程/app/build.gradle导入ocrsdk.aar与ocr_ui模块工程//...省略之前配的其他地址 dependencies {//...省略之前配的其他地址implementation(name: ocrsdk, ext: aar)implementation project(path: :ocr_ui) } 2.调用代码实现身份证识别 第1步调用SDK方法获取token 第2步调用SDK方法打开身份证识别界面 第3步在调用的Activity的onActivityResult中调用SDK识别图片中的身份信息。调用身份证SDK业务类public class BDIDCardScanBiz {public static final int REQUEST_CODE_CAMERA 100;private boolean mHasGotToken;private static BDIDCardScanBiz I;public static BDIDCardScanBiz I() {if (I null) {I new BDIDCardScanBiz();}return I;}/*** 第1步调用此方法获取token*/public void getAccessToken() {OCR.getInstance(App.getContext()).initAccessTokenWithAkSk(new OnResultListener() {Overridepublic void onResult(Object o) {AccessToken accessToken (AccessToken) o;String token accessToken.getAccessToken();mHasGotToken true;}Overridepublic void onError(OCRError error) {// 调用失败返回OCRError子类SDKError对象}}, App.getContext(), Zxuz7GjLGsjBna44UjOQPVJv, teLf4S7EjI5fjIshagZoovRSKlZSfPwM);}/*** 第2步调用此方法打开身份证识别界面*/public void startIDCardScanActivity(Activity act) {if (!PermissionUtil.checkCameraPermission(act)) return;Intent intent new Intent(act, CameraActivity.class);intent.putExtra(CameraActivity.KEY_OUTPUT_FILE_PATH,FileUtils.getSaveFile(App.getContext()).getAbsolutePath());intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_ID_CARD_FRONT);act.startActivityForResult(intent, REQUEST_CODE_CAMERA);}/*** 第3步在onActivityResult中调此方法获取身份证信息*/public void handlerData(String contentType) {if (TextUtils.isEmpty(contentType)) return;String filePath FileUtils.getSaveFile(App.getContext()).getAbsolutePath();if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)) {recIDCard(IDCardParams.ID_CARD_SIDE_FRONT, filePath);} else if (CameraActivity.CONTENT_TYPE_ID_CARD_BACK.equals(contentType)) {recIDCard(IDCardParams.ID_CARD_SIDE_BACK, filePath);}}private void recIDCard(String idCardSide, String filePath) {IDCardParams param new IDCardParams();param.setImageFile(new File(filePath));// 设置身份证正反面param.setIdCardSide(idCardSide);// 设置方向检测param.setDetectDirection(true);// 设置图像参数压缩质量0-100, 越大图像质量越好但是请求时间越长。 不设置则默认值为20param.setImageQuality(20);param.setDetectRisk(true);OCR.getInstance(App.getContext()).recognizeIDCard(param, new OnResultListenerIDCardResult() {Overridepublic void onResult(IDCardResult result) {if (result ! null) {//获取身份信息}}Overridepublic void onError(OCRError error) {}});} } 三、使用百度云API实现身份证识别 说明免费额度个人帐户每月1千次/企业帐户每月2千次要联网。 1.AndroidManifest.xml添加权限 同上面两种 2.调用代码实现身份证识别 第1步调用百度API获取token public static String getToken() {String url https://aip.baidubce.com/oauth/2.0/token?client_id Config.CLIENT_ID client_secret Config.CLIENT_SECRET grant_typeclient_credentials;if (!NetHelp.getCurConnectStatus()) {return null;}Response response null;try {Request request new Request.Builder().url(url).get().build();LogUtils.d(getToken request url : url);response httpClient.newCall(request).execute();} catch (IOException e) {LogUtils.d(getToken request exception: e.getMessage());e.printStackTrace();return null;}LogUtils.d(getToken response isSuccessful: response.isSuccessful());if (response ! null response.isSuccessful()) {try {String strRecData response.body().string();LogUtils.d(getToken response body: strRecData);if (strRecData ! null strRecData.length() 2) {JSONObject jsonObj new JSONObject(strRecData);if (jsonObj ! null !jsonObj.isNull(access_token)) {return jsonObj.getString(access_token);}}return response.body().string();} catch (Exception e) {LogUtils.d(getToken response parse exception: e.getMessage());e.printStackTrace();return null;}}return null;} 第2步调用系统相机拍身份证照片可以自已实现带身份证头像框的拍照功能界面更加美观 /*** 调起系统相机进行拍照此步可以自已实现拍照功能界面更美观*/public void startIDCardScanActivity(Activity act) {Log.i(IDCard, IDCard startIDCardScanActivity );Intent intent new Intent(MediaStore.ACTION_IMAGE_CAPTURE);if (intent.resolveActivity(act.getPackageManager()) ! null) {act.startActivityForResult(intent, REQUEST_CODE_CAMERA);}} 第3步在onActivityResult中将图片上传百度API获取身份证信息 /*** 解析身份证图片获取身份信息*/public void handlerData(Activity act, Intent data, IDCardScanCallback callback) {new Thread() {Overridepublic void run() {Bundle bundle data.getExtras();Log.i(IDCard, IDCard handlerData bundle : bundle);if (bundle null) return;Bitmap bitmap (Bitmap) bundle.get(data);Log.i(IDCard, IDCard handlerData bitmap : bitmap);if (bitmap null) return;File file new File(App.getContext().getCacheDir(), System.currentTimeMillis() .jpeg);if (!file.getParentFile().exists()) file.mkdirs();try {FileOutputStream out new FileOutputStream(file);bitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);out.flush();out.close();Log.i(IDCard, IDCard saveBitmap filePath: file.getAbsolutePath() fileLen: file.length());} catch (IOException ex) {ex.printStackTrace();}String filePath file.getAbsolutePath();Log.i(IDCard, IDCard parseImage filePath: filePath);final IDCardInfo info HttpHelp.getIDCard(new File(filePath));if (info ! null callback ! null) {act.runOnUiThread(() - callback.onIDCardResult(info));}}}.start();} public static IDCardInfo getIDCard(File file){if (!NetHelp.getCurConnectStatus() || file null || file.length() 0){return null;}String accessToken getToken();if (TextUtils.isEmpty(accessToken)) return null;String url https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token accessToken;String img null;try {img FileUtils.base64File(file);} catch (Exception e) {e.printStackTrace();}if (TextUtils.isEmpty(img)) return null;Response response null;try {FormBody.Builder builder new FormBody.Builder().add(id_card_side, front).add(image, img);Request request new Request.Builder().url(url).post(builder.build()).build();LogUtils.d(getIDCard request url : url img: img);response httpClient.newCall(request).execute();} catch (IOException e) {LogUtils.d(getIDCard request exception: e.getMessage());e.printStackTrace();return null;}LogUtils.d(getIDCard response isSuccessful: response.isSuccessful());if (response ! null response.isSuccessful()) {try {String strRecData response.body().string();LogUtils.d(getIDCard response body: strRecData);if (strRecData ! null strRecData.length() 2) {JSONObject rootObj new JSONObject(strRecData);if (rootObj ! null !rootObj.isNull(words_result)) {JSONObject wordObj rootObj.getJSONObject(words_result);IDCardInfo info new IDCardInfo();if (!wordObj.isNull(姓名) !wordObj.getJSONObject(姓名).isNull(words)) {info.name wordObj.getJSONObject(姓名).getString(words);}if (wordObj ! null !wordObj.isNull(民族) !wordObj.getJSONObject(民族).isNull(words)) {info.nation wordObj.getJSONObject(民族).getString(words);}if (wordObj ! null !wordObj.isNull(住址) !wordObj.getJSONObject(住址).isNull(words)) {info.address wordObj.getJSONObject(住址).getString(words);}if (wordObj ! null !wordObj.isNull(公民身份号码) !wordObj.getJSONObject(公民身份号码).isNull(words)) {info.idNum wordObj.getJSONObject(公民身份号码).getString(words);}if (wordObj ! null !wordObj.isNull(出生) !wordObj.getJSONObject(出生).isNull(words)) {info.birthday wordObj.getJSONObject(出生).getString(words);}if (wordObj ! null !wordObj.isNull(性别) !wordObj.getJSONObject(性别).isNull(words)) {info.sex wordObj.getJSONObject(性别).getString(words);}LogUtils.d(getIDCard response parse IDCardInfo: info.toString());return info;}}} catch (Exception e) {LogUtils.d(getIDCard response parse exception: e.getMessage());e.printStackTrace();return null;}}return null;}
http://www.laogonggong.com/news/136479.html

相关文章:

  • 网站开发项目怎么接闸北做网站公司
  • 静态网页模板 网站模板做电影采集网站需要多大vps
  • 合肥市重点工程建设管理局网站网站原文件怎么上传空间
  • 辅助教学网站开发技术讨论采购管理软件免费版
  • pc 移动端网站建设中学网站模板
  • 网站建设的违约责任怎么写美味的树莓派wordpress
  • 如何给自己做的网站加上域名阿里云快速做网站
  • 南宁网站制作超薄网络成都大型网站建设
  • 均安建网站wordpress多个函数文件路径
  • 建设网站职业证书查询联合智慧旅游建设旅游门户网站
  • 南京做网站的有哪些本地企业网站建设模板
  • 加强主流网站建设阿里云营销网站建设
  • 网站建设 视频教程wordpress能制作视频网站吗
  • 网站建设 豫icp备为什么要网站建设
  • 如何用 python 做网站公众号开发公司排行榜
  • 免费网站建设有哪些策划案
  • 网站设计软件有哪些新闻头条最新消息摘抄
  • 福鼎网站建设培训注册一个公司大概要多少钱
  • 鞍山手机网站设计wordpress 3.8.2
  • 百度收录网站需要多久茶艺馆网站
  • 抚顺市+网站建设广网站建设
  • phpcms 做购物网站湖南建设人力资源网站
  • 广元网站建设浏览器怎么打开网站服务器下载
  • 河北网站建设流程另一更新正在进行 wordpress
  • 东莞桂城网站建设wordpress去除分类链接
  • 服装商城网站的设计与实现广东省建设厅的注册中心网站
  • 书店网站开发汕头关键词排名
  • 国外毕业设计网站网站推广软件免费版
  • 监控网站模板下载淄博网站推广价格
  • 如何搭建视频网站资源网站推荐