需要用到Android环境下控制开发板硬件,友善之臂的看起来有点过时了,不是太清晰,经过研究把在Android studio环境下的步骤发一下吧
1、友善之臂提供了一个库文件,以访问硬件,需要将库文件放到这个目录内部,jni对应的库目录内部。
2、需要将友善的一些类放进来
3、在自己代码里面导入访问硬件的类库
import com.friendlyarm.FriendlyThings.HardwareControler;
import com.friendlyarm.FriendlyThings.BoardType;
4、将代码写到自己的代码里面,对硬件进行访问
int boardType = HardwareControler.getBoardType();
if (boardType == BoardType.NanoPC_T2
|| boardType == BoardType.NanoPC_T3
|| boardType == BoardType.NanoPC_T3T
) {
demoGPIOPins.put("Pin17", 68);
demoGPIOPins.put("Pin18", 71);
demoGPIOPins.put("Pin19", 72);
demoGPIOPins.put("Pin20", 88);
demoGPIOPins.put("Pin21", 92);
demoGPIOPins.put("Pin22", 58);
Log.e("11111111","NanoPC_T3");
}
if (demoGPIOPins.size() == 0) {
Log.e("222222","NanoPC_T3");
Toast.makeText(this, String.format("Not found any GPIO pin."),
Toast.LENGTH_SHORT).show();
} else {
Log.e("33333333333","NanoPC_T3");
// export all pins
for (Integer sysPinNum: demoGPIOPins.values()) {
if (HardwareControler.exportGPIOPin(sysPinNum) != 0) {
Log.e("444444444", String.format("exportGPIOPin(%d) failed!", sysPinNum));
}
}
// step = STEP_INIT_GPIO_DIRECTION;
// timer.schedule(init_task, 300, 200);
}
timer1 = new Timer();
devfd = HardwareControler.openSerialPort( devName, speed, dataBits, stopBits );
if (devfd >= 0) {
timer1.schedule(task, 0, 500);
} else {
devfd = -1;
}
5、修改Androidmanifece
6、先对APP进行签名,签名之后,还需要使用友善的证书进行重新打包才能访问硬件。
启动cmd,然后去到发布签名后的APP所在目录。
java -jar ./signapk.jar platform.x509.pem platform.pk8 ./app-release.apk app-release-signed.apk
然后使用adb安装到开发板。
adb install app-release-signed.apk