您可以ContentProvider
像使用 REST Web 界面一样使用
从应用程序:
Uri ledUri = Uri.parse("content://your.app/led");
ContentResolver cr = getContentResolver();
// "write" data
ContentValues cv = new ContentValues();
cv.put("state", 1);
cr.insert(ledUri, cv);
// read data
int newState = 0;
Cursor c = cr.query(ledUri, new String[] { "state" }, null, null, null);
if (c.moveToFirst()) {
newState = c.getInt(0);
}
在您的提供者内部,您只需设置/读取 GPIO 状态,而不是将数据写入数据库。大致喜欢
@Override
public Uri insert(Uri uri, ContentValues values) {
if (uri.toString().equals("content://your.app/led")) {
int requestedState = values.getAsInteger("state");
set_gpio_state(requestedState);
}
}
如何从 Java 访问 GPIO 是另一个问题,因为它们(AFAIK)只能在内核级别访问。