安卓SDK使用说明

针对NFC-Powered e-Paper安卓开发,我们提供了SDK,将发送函数部分封装好,用户在开发的时候,只需要准备好图像数据, 通过调用函数即可实现图像传输到NFC-Powered e-Paper上进行刷新。

导入.jar文件

  • 下载SDK
    • 下载SDK,并解压出.jar文件
    • NFC SDK
  • 将Jar文件添加到工程的libs目录下

  • 在工程中找到.jar文件,然后右键加载



  
  • 加载成功后,会在build.gradle中自动添加如下的语句:

使用说明

整个SDK中提供了两个函数,分别是发送函数和进度函数

发送函数

  • int a(NfcA var1, int var2, Bitmap var3) ;
    • var1: NFC标签实例
    • var2:墨水屏型号 (请参考下面的墨水屏型号对应表格)
    • var3: 需要显示的BMP图片数据 (请参考下面的图片要求表格)
  • 返回值说明
    • 1:发送成功
    • 0:发送失败
墨水屏型号对应
编号对应型号
12.13inch
22.9inch
34.2inch
47.5inch
57.5inch HD
62.7inch
墨水屏型号对应图片规格
编号尺寸
12.13inch250122
22.9inch296128
34.2inch400300
47.5inch800480
57.5inch HD880528
62.7inch264176

进度函数

  • int b()
  • 返回值:
    • 0-100:当前进度
    • -1:失败

参考示例

  1. protected void onNewIntent(Intent intent) {//识别到NFC
  2. if (mWriteMode && NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
  3. detectedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
  4. String[] tech = detectedTag.getTechList();//得到描述符
  5. if(tech[0].equals("android.nfc.tech.NfcA")) {//如果描述符正确
  6. Thread t = new Thread() {//创建进程 保证主程序不阻塞
  7. @Override
  8. public void run() {
  9. Boolean success = false;
  10. NfcA tntag;//NFC接口
  11.  
  12. final a a = new a();//创建发送的实例。
  13. a.a();//初始化发送函数
  14.  
  15. Thread thread = new Thread(new Runnable() {//创建线程
  16. @Override
  17. public void run() {
  18. EPD_total_progress = 0;
  19. while(EPD_total_progress != -1){
  20. EPD_total_progress = a.b();//读取进度
  21. if(EPD_total_progress == -1){
  22. break;
  23. }
  24. setStatusBody(getString(R.string.txing) + EPD_total_progress +"%");
  25. if(EPD_total_progress == 100 ){
  26. break;
  27. }
  28. SystemClock.sleep(10);//防止过度占用CPU
  29. }
  30. }
  31. });
  32. thread.start();//开启线程
  33. tntag = NfcA.get(detectedTag);//获取给定标签的实例
  34. try {
  35. int whether_succeed = a.a(tntag,Size_Flag, bmp_send);//发送函数
  36. if(whether_succeed == 1){
  37. success = true;
  38.  
  39. runOnUiThread(new Runnable() {
  40. @Override
  41. public void run() {
  42. checkNFCpopwindow.dismiss(); //窗口提示
  43.  
  44. }
  45. });
  46. Success_Sound_Effects();
  47.  
  48. }else{
  49. setStatusBody(getString(R.string.txfail));
  50. }
  51.  
  52. } finally {
  53. try {
  54. if (success == false) {
  55. setStatusBody(getString(R.string.txfail));
  56. runOnUiThread(new Runnable() {
  57. @Override
  58. public void run() {
  59. checkNFCpopwindow.dismiss();
  60. }
  61. });
  62. }
  63. tntag.close();
  64. } catch (IOException e) {//发送异常处理 NFC I/O异常
  65. e.printStackTrace();
  66. }
  67. }
  68. }
  69. };
  70. t.start();//开启线程
  71. }
  72. }
  73. }