Android SDK for NFC-Powered e-Paper
来自Waveshare Wiki
针对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:发送失败
编号 | 对应型号 |
---|---|
1 | 2.13inch |
2 | 2.9inch |
3 | 4.2inch |
4 | 7.5inch |
5 | 7.5inch HD |
6 | 2.7inch |
7 | 2.9inch B |
编号 | 尺寸 | 宽 | 高 |
---|---|---|---|
1 | 2.13inch | 250 | 122 |
2 | 2.9inch | 296 | 128 |
3 | 4.2inch | 400 | 300 |
4 | 7.5inch | 800 | 480 |
5 | 7.5inch HD | 880 | 528 |
6 | 2.7inch | 264 | 176 |
7 | 2.9inch B | 296 | 128 |
- Bitmap
黑白:需要显示的BMP图片,图片要求全彩,但是图中只能有黑白,不透明,其他颜色可能不会显示,不同的屏幕像素要求不同。
黑白红: BMP图片只能存在3中颜色 黑白红,其他颜色可能会认为是黑色或者白色,红色要求为0xffff0000。
进度函数
- int b()
- 返回值:
- 0-100:当前进度
- -1:失败
参考示例
protected void onNewIntent(Intent intent) {//识别到NFC if (mWriteMode && NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { detectedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); String[] tech = detectedTag.getTechList();//得到描述符 if(tech[0].equals("android.nfc.tech.NfcA")) {//如果描述符正确 Thread t = new Thread() {//创建进程 保证主程序不阻塞 @Override public void run() { Boolean success = false; NfcA tntag;//NFC接口 final a a = new a();//创建发送的实例。 a.a();//初始化发送函数 Thread thread = new Thread(new Runnable() {//创建线程 @Override public void run() { EPD_total_progress = 0; while(EPD_total_progress != -1){ EPD_total_progress = a.b();//读取进度 if(EPD_total_progress == -1){ break; } setStatusBody(getString(R.string.txing) + EPD_total_progress +"%"); if(EPD_total_progress == 100 ){ break; } SystemClock.sleep(10);//防止过度占用CPU } } }); thread.start();//开启线程 tntag = NfcA.get(detectedTag);//获取给定标签的实例 try { int whether_succeed = a.a(tntag,Size_Flag, bmp_send);//发送函数 if(whether_succeed == 1){ success = true; runOnUiThread(new Runnable() { @Override public void run() { checkNFCpopwindow.dismiss(); //窗口提示 } }); Success_Sound_Effects(); }else{ setStatusBody(getString(R.string.txfail)); } } finally { try { if (success == false) { setStatusBody(getString(R.string.txfail)); runOnUiThread(new Runnable() { @Override public void run() { checkNFCpopwindow.dismiss(); } }); } tntag.close(); } catch (IOException e) {//发送异常处理 NFC I/O异常 e.printStackTrace(); } } } }; t.start();//开启线程 } } }