Android SDK for NFC-Powered e-Paper
From Waveshare Wiki
For easily develop your own APP, we provided the SDK, the SDK packages the send function, you only need to use it for updating the NFC-Powered e-Paper.
Import the .jar file
- Download the SDK
- Download the SDK and unzip it to get the .jar file
- NFC SDK
- Copy the Jar file to libs directory of your project.
- Find the .jar file in your project, right-click it to add it as libraries.
- After adding, the line will bee auto-added to build.gradle.:
Use guide
There are two functions provided, one is send function and any is status function.
Sent function
- int a(NfcA var1, int var2, Bitmap var3) ;
- var1: NFC tag
- var2:Type of the e-Paper (refer to the type table below)
- var3: The BMP picture for updating.(refer to the picture table below)
- Return
- 1:Sent successfully
- 0:Failed
| Type | e-Paper |
|---|---|
| 1 | 2.13inch |
| 2 | 2.9inch |
| 3 | 4.2inch |
| 4 | 7.5inch |
| 5 | 7.5inch HD |
| 6 | 2.7inch |
| 7 | 2.9inch B |
| Type | e-Paper | width | height |
|---|---|---|---|
| 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
Black/White e-Paper: Requrie BMP pictures, which has only Black and white pixels.
Three-color e-Paper: Require BMP picture, which has only three colors.
Status function
- int b()
- Return:
- 0-100:The current process of sending.
- -1:Failed
Examples
protected void onNewIntent(Intent intent) {//Recognized the NFC
if (mWriteMode && NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) {
detectedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
String[] tech = detectedTag.getTechList();//Get the descriptor
if(tech[0].equals("android.nfc.tech.NfcA")) {//if the descriptor is correct
Thread t = new Thread() {//Create an new thread
@Override
public void run() {
Boolean success = false;
NfcA tntag;//NFC tag
final a a = new a();//Create a new instance.
a.a();//初始化发送函数
Thread thread = new Thread(new Runnable() {//Create thread
@Override
public void run() {
EPD_total_progress = 0;
while(EPD_total_progress != -1){
EPD_total_progress = a.b();//Read the process
if(EPD_total_progress == -1){
break;
}
setStatusBody(getString(R.string.txing) + EPD_total_progress +"%");
if(EPD_total_progress == 100 ){
break;
}
SystemClock.sleep(10);
}
}
});
thread.start();//start the thread
tntag = NfcA.get(detectedTag);//Get the tag instance.
try {
int whether_succeed = a.a(tntag,Size_Flag, bmp_send);//Send picture
if(whether_succeed == 1){
success = true;
runOnUiThread(new Runnable() {
@Override
public void run() {
checkNFCpopwindow.dismiss(); //Tips
}
});
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) {//handle exception error
e.printStackTrace();
}
}
}
};
t.start();//Start thread
}
}
}

