Android平台名片开发手册_第1页
Android平台名片开发手册_第2页
Android平台名片开发手册_第3页
Android平台名片开发手册_第4页
Android平台名片开发手册_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android平台名片识别开发手册文档版本:起草时间:2015年10月地址:北京市海淀区北四环西路9号银谷大厦16层1609室电话:(010)62800286/62800250网址:文档修改记录:日期修改说明变更人审核人2015-10初稿张志朋2016-01追加扫描功能集成薛尚2016-01优化开发手册黄震2016-06更改识别动画邹旭黄2016-10文件上传138=1056=513217目录1 演示程序安装与激活21.1 安装21.2 Android版本21.3 激活方式介绍22 拍摄注意事项32.1 一般要求32.2 对拍摄图像的要求33 接口概述与集成说明34 调用识别Ac

2、tivity44.1 识别参数说明44.2 识别返回值说明54.3示例代码64.3.1识别调用代码64.3.2接收返回值代码85、序列号在线激活方式集成步骤95.1 将assets文件夹、lib文件夹、libs文件夹全部按照下图的目录结构复制到集成的项目中:95.3 授权服务的代码集成(具体变量的定义请详见ImageChooser.java,该代码需在识别之前调用)125.4进入拍照识别界面代码:135.5结果解析代码135.6 结束136. 项目授权方式的集成步骤146.1用户向北京文通科技有限公司的销售提供需要绑定的一些参数,然后销售会给用户一个项目授权文件(authmode.lsc);然

3、后将assets文件夹、lib文件夹、libs文件夹全部按照下图的目录结构复制到集成的项目中并将新得到的authmode.lsc复制进集成项目中的assets文件夹内:146.2打开要集成的项目的AndroidManifest.xml文件,将以下权限、相应的service和activity加入其中:156.3进入拍照识别界面代码:176.4更改开发码和对应的authmode.lsc文件176.5结果解析代码186.6结束181 演示程序安装与激活1.1 安装安装中安名片演示程序BuCard_sample_sdk.apk。1.2 Android版本支持Android2.3 6.01.3 激活方式

4、介绍在首次调用时提供序列号或激活文件进行激活。1、在线序列号激活方式。由北京文通科技有限公司提供含有序列号的Excel文件,用户在调用程序中指定sn参数即用于该设备的某序列号,首次调用识别时设备须联网。可指定绑定设备deviceid或绑定SIM卡序号。默认绑定deviceid。2、离线文件激活方式。用户先提供北京文通科技有限公司含有deviceid或androidid的Excel文件(第一列为deviceid,第二列为androidid),然后北京文通科技有限公司提供对应设备的激活文件压缩包,压缩包中激活文件的 数目与设备数目一致,以deviceid_cp.txt命名,用户在调用程序中指定au

5、thfile参数即激活文件的路径和名称,首次调用时设备无需联网。如authfile参数为null或等于”时,默认激活文件路径为根目录下的deviceid_cp.txt,当激活文件存在时做此激活操作。3、项目授权方式。项目授权文件中限制如下内容:开发码参数、用户程序包名、识别核心版本号、使用截止时间、用户程序名称、用户公司名称;开发码与调用识别时传递的devcode参数比对,开发码由北京文通科技有限公司与项目授权文件一并提供;程序包名与AndroidMenifest.xml中package比对;使用截止时间与当前系统时间比对;授权文件中核心版本号与底层核心版本号比对, 默认限制前两位;项目名称与

6、strings.xml中app_name比对;公司名称与strings.xml中company_name比对;项目授权文件需放入项目assets文件夹中。注意:如果使用1或2 所列的激活方式,请选择指定sn参数或authfile参数 ,不要同时指定sn参数和authfile参数,否则将只按1的方式进行激活,设置此两个参数请参见下文代码示例。*采用项目授权无需调用验证授权服务2 拍摄注意事项 目前支持的JPEG图像的分辨率为2048*1536像素及以下,1600*1200及以上。2.1 一般要求图像文字清晰,人眼可辨别;对比度、亮度适中;2.2 对拍摄图像的要求拍摄时做好聚焦,以免图像模糊不清;

7、尽量不要使拍摄角度倾斜过大,以免造成图像变形成梯形;3 接口概述与集成说明用户可以调用Activity方式集成识别功能,识别Activity只支持JPG图片格式,用户可以通过调用函数的方式设置识别参数,详情见后面章节。注意将“BuCard_sample_sdk集成所需文件”文件夹下的所有内容放到Android项目的根目录下;注意拷贝assets、lib、libs及res的内容到您的项目中;注意将AndroidManifest.xml里面的内容和res/values/strings.xml的内容合并到项目相关文件中;如果采用序列号激活方式绑定设备,请将“序列号” 文件夹中的相关文件替换到项目中;

8、4 调用识别Activity4.1 识别参数说明识别Activity具有如下参数:类型名称说明示例 RecogService.byteDataType识别模式通过此参数可以通知核心是使用拍照识别还是扫描识别的模式进行初始化识别函数RecogService.byteDataType=1为拍照模式;RecogService.byteDataType=0为扫描模式byte nv21dataNv21格式 的数组该参数通常用于扫描识别模式中,在拍照识别模式中可将其置为空例如null或dataSize size相机预览尺寸该参数通常用于扫描识别模式中,在拍照识别模式中可将其置为空例如null或camera

9、.getParameters().getPreviewSize()int width,int height扫描识别模式下的预览图像的宽和高该参数通常用于扫描识别模式中,在拍照识别模式中可将其置为0例如0或其他整型String picturePath拍照模式下的识别图像存储的物理路径该参数通常用于拍照识别模式中,在扫描识别模式中可将其置为“”例如“”或其他数值4.2 识别返回值说明识别Activity具有如下返回值:类型名称说明备注intReturnAuthority授权验证结果0成功;-1001 读jpg图片错误,可能是图片超过2048*1536分辨率-10001 未调用初始化函数-10003

10、 没有激活或激活码校验失败-10004 指定序列号为null或""-10005 未连接到服务器-10006 获取激活码失败或未连接到服务器-10007 授权服务器无此序列号-10008 序列号已使用-10009 无法创建授权文件-10010 校验激活码失败-10011 其他错误-10012 未激活-10015 激活文件校验失败-10401 开发码错误或未找到authmode.lsc文件-10402 设备型号未授权-10500 未检测到SIM卡-1008 未读到TF卡;-1005 TF卡授权模式下使用了非TF卡授权的动态库;20 所插TF中的licenselicense.da

11、t授权文件未找到或不匹配;或非TF卡授权模式下使用了TF卡模式动态库;-10600 其他错误;-10601 开发码错误;-10602 程序包名错误;-10603 截止时间过期;-10604 核心版本号错误;-10605 项目名称错误; -10606 公司名称错误。IntReturnRecogBuCard识别返回值0成功IntReturnInitBUCard初始化函数返回值ArrayList<HashMap<String, String>>list = (ArrayList<HashMap<String, String>>) bunt("

12、list")t(0);for (int i = 0; i < list.size(); i+) HashMap<String, String> map = list.get(i);str += map.get("Name") + ":" + map.get("Val") + "n"4.3示例代码4.3.1识别调用代码(在调用此方法前请先设置RecogService.byteDataType的值)public void startActivityRecog(byte nv21data, S

13、ize size, int width,int height, String picturePath) String picPathString = ""try if (RecogService.byteDataType = 0) / 存取识别图片 startpicPathString = path + "card_full.jpg"File file = new File(path);if (!file.exists()file.mkdirs();File file1 = new File(picPathString);Utils.freeFileLo

14、ck(new FileOutputStream(picPathString).getChannel().tryLock(), file1);YuvImage yuvimage = new YuvImage(nv21data, ImageFormat.NV21,size.width, size.height, null);ByteArrayOutputStream baos = new ByteArrayOutputStream();pressToJpeg(new Rect(int) (size.width * 0.15),(int) (size.height - 0.41004673 * si

15、ze.width) / 2,(int) (size.width * 0.8),(int) (size.height + 0.41004673 * size.width) / 2), 80,baos);FileOutputStream outStream;outStream = new FileOutputStream(picPathString);outStream.write(baos.toByteArray();outStream.close();baos.close();/ 存取识别图片 endRecogService.recogBytes = nv21data; else if (Re

16、cogService.byteDataType = 1) RecogService.byteDataType = 1;picPathString = picturePath;/ else if (RecogService.byteDataType = 2) / RecogService.byteDataType = 2;/ picPathString = picturePath;/ String cutPicturePath = path + Utils.pictureName() + "_cut.jpg"Intent intent = new Intent("k

17、ernel.bucard");Bundle bundle = new Bundle();bundle.putString("lpFileName", picPathString);/ 指定的图像路径,预览扫描识别时,该参数代表动画图片路径bundle.putString("devcode", NameCardAuthParamters.DEVCODE);bundle.putInt("recogBytes_width", width);/预览图像的宽bundle.putInt("recogBytes_height&q

18、uot;, height);/预览图像的高bundle.putString("returntype", "withvalue");/ 返回值传递方式withvalue带参数的传值方式(onActivityResult方式返回识别结果)bundle.putBoolean("isSaveCut", false);/是否保存裁切图片bundle.putString("cutPicturePath", cutPicturePath);/ 指定的图像路径,预览扫描识别时,该参数代表动画图片路径intent.putExtras

19、(bundle);(Activity) context).startActivityForResult(intent, 8); catch (Exception e) Toast.makeText(context,context.getString(R.string.noFoundProgram)+ "kernel.bucard", 0).show();e.printStackTrace();4.3.2接收返回值代码protected void onActivityResult(int requestCode, int resultCode, Intent data) if

20、 (requestCode = 8 && resultCode = RESULT_OK) / 读识别返回值Bundle bun = data.getBundleExtra("GetRecogResult");/识别信息Intent intent = new Intent(CameraActivity.this,BucardRunner.class);intent.putExtra("RecogValue", bun);intent.putExtra("camera", isAutoRecog);startActivit

21、y(intent);CameraActivity.this.finish();overridePendingTransition(R.anim.zoomin, R.anim.zoomout);5、序列号在线激活方式集成步骤5.1 将assets文件夹、lib文件夹、libs文件夹全部按照下图的目录结构复制到集成的项目中:先选中所有的jar包,然后add Path,右键lib文件夹点击Buid Path选项并选择config buid Path选项,点击Order and Export选项,ksoap2-android-assembly-2.4-jar-with-dependencies.jar

22、、pki.jarandroid_auth.jar、bcprov-ext-jdk15-146.jar、android_auth.jar、bucard_sdk.jar、等全部勾选并点击“确定”按钮,如图:将res的内容合并到您的项目中;注意将AndroidManifest.xml里面的内容和res/values/strings.xml的内容合并到项目相关文件中5.2 打开要集成的项目的AndroidManifest.xml文件,将以下权限、相应的service和activity加入其中: <uses-permission android:name="android.permissi

23、on.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="an

24、droid.permission.VIBRATE" /> <!- 名片识别 -> <!- 往SDCard写入数据权限 -> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!- 在SDCard中创建与删除文件权限 -> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

25、; <!- 关闭该包下的所有应用程序 -> <uses-permission android:name="android.permission.RESTART_PACKAGES" /> <!- 获取机型信息权限 -> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!- 访问internet权限 -> <uses-permission android:name="android.per

26、mission.INTERNET" /><activity android:name=".CameraActivity" android:label="string/app_name" android:screenOrientation="landscape" > <intent-filter> <action android:name="vicard.receiver" /> <category android:name="

27、ent.category.DEFAULT" /> </intent-filter></activity> <activity android:name=".BucardRunner" android:configChanges="keyboardHidden|orientation" android:label="string/app_name" > <intent-filter> <action android:name="bucard.receiver

28、" /> <category android:name="ent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name="kernel.BusinessCard.android.BuCardBean" android:configChanges="keyboardHidden|orientation" android:screenOrientation="

29、landscape" > <intent-filter> <action android:name="kernel.bucard" /> <category android:name="ent.category.DEFAULT" /> </intent-filter> </activity> <service android:name="kernel.BusinessCard.android.AuthService" android

30、:enabled="true" > <intent-filter> <action android:name="kernel.bucard.authService" /> </intent-filter> </service> <service android:name="kernel.BusinessCard.android.RecogService" android:enabled="true" > <intent-filter> &

31、lt;action android:name="kernek.bucard.recogService" /> </intent-filter> </service>注册时请注意更换包名!5.3 授权服务的代码集成(具体变量的定义请详见ImageChooser.java,该代码需在识别之前调用) 授权服务的定义:(用户需将从销售手中获得的25位序列号替换sn, ReturnAuthority变量为授权服务成功与否的标志,如果为0则证明授权成功)public ServiceConnection authConn = new ServiceConne

32、ction() Overridepublic void onServiceDisconnected(ComponentName name) authBinder = null;Overridepublic void onServiceConnected(ComponentName name, IBinder service) authBinder = (AuthService.authBinder) service;try AuthParameterMessage apm = new AuthParameterMessage();/ apm.datefile = ""/预留

33、apm.devcode =NameCardAuthParamters.DEVCODE;/5YYX5LQS5PAH6YCapm.sn = ""/ WU9H5VSSDVXYB6KYYI52YYICW /apm.isCheckDevType=true;/强制验证设备型号开关ReturnAuthority = authBinder.getBuCardAuth(apm); catch (Exception e) Toast.makeText(getApplicationContext(), getString(R.string.license_verification_failed)

34、,Toast.LENGTH_LONG).show(); finally if (authBinder != null) unbindService(authConn);授权服务的调用:(在Activity的onResume()中调用,必须在进入拍照界面前进行调用)Intent authIntent = new Intent(ImageChooser.this, AuthService.class);bindService(authIntent, authConn, Service.BIND_AUTO_CREATE);5.4进入拍照识别界面代码:5.4.1手动拍照识别请注意将CameraActi

35、vity添加到您的项目中Intent intent = new Intent();Intent intent = new Intent();intent.setClass(ImageChooser.this, CameraActivity.class);intent.putExtra("camera", false);ImageChooser.this.finish();startActivity(intent);overridePendingTransition(R.anim.zoomin, R.anim.zoomout);5.4.2扫描自动识别Intent intent

36、 = new Intent();intent.setClass(ImageChooser.this, CameraActivity.class);intent.putExtra("camera",true);ImageChooser.this.finish();startActivity(intent);overridePendingTransition(R.anim.zoomin, R.anim.zoomout);5.5结果解析代码结果解析识别代码请详见此方法:readRecogResult()此方法位于BucardRunner.java中5.6 结束如果通过以上步骤进行

37、集成,并出现相应的集成问题,请及时联系技术开发人员6. 项目授权方式的集成步骤6.1用户向北京文通科技有限公司的销售提供需要绑定的一些参数,然后销售会给用户一个项目授权文件(authmode.lsc);然后将assets文件夹、lib文件夹、libs文件夹全部按照下图的目录结构复制到集成的项目中并将新得到的authmode.lsc复制进集成项目中的assets文件夹内:先选中所有的jar包,然后add Path,右键lib文件夹点击Buid Path选项并选择config buid Path选项,点击Order and Export选项,将android_auth.jar、bucard_sdk

38、.jar、pki.jar等全部勾选并点击“确定”按钮,如图:6.2打开要集成的项目的AndroidManifest.xml文件,将以下权限、相应的service和activity加入其中:<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-feature android:name="android.ha

39、rdware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.VIBRATE" /> <!- 名片识别 -> <!- 往SDCard写入数据权限 -> <uses-permission android:name="android.permission.WRITE_EXTER

40、NAL_STORAGE" /> <!- 在SDCard中创建与删除文件权限 -> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!- 关闭该包下的所有应用程序 -> <uses-permission android:name="android.permission.RESTART_PACKAGES" /> <!- 获取机型信息权限 -> <uses-permi

41、ssion android:name="android.permission.READ_PHONE_STATE" /> <!- 访问internet权限 -> <uses-permission android:name="android.permission.INTERNET" /><activity android:name=".CameraActivity" android:label="string/app_name" android:screenOrientation=&

42、quot;landscape" > <intent-filter> <action android:name="vicard.receiver" /> <category android:name="ent.category.DEFAULT" /> </intent-filter></activity> <activity android:name=".BucardRunner" android:configChanges=&quo

43、t;keyboardHidden|orientation" android:label="string/app_name" > <intent-filter> <action android:name="bucard.receiver" /> <category android:name="ent.category.DEFAULT" /> </intent-filter> </activity> <activity android:

44、name="kernel.BusinessCard.android.BuCardBean" android:configChanges="keyboardHidden|orientation" android:screenOrientation="landscape" > <intent-filter> <action android:name="kernel.bucard" /> <category android:name="ent.category.DEFAULT" /> </intent-filter> </activity> <service android:name="kernel.BusinessCard.and

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论