我正在使用Android作为操作系统的TI OMAP平台。对于一个UseCase,我们必须切换设备中的一个LED。 LED具有多个“设备属性”,并且从应用层[.java],我们想要读取“设备属性”。
当我们在adb提示符上运行cat命令时:
# cat /sys/devices/device_name/device_attribute
# device_attribute:invalid length
我们收到错误“无效长度”。因此,我想知道有没有办法读取“设备属性”,以便App Layer也可以访问它。
我在另一个论坛http://android.modaco.com/topic/312770-possible-solution-for-lack-of-notification-light-developers-needed上发现了一个类似的问题,但也没有答案。
感谢回复!!!
解决方案 该设备只有“set_device_attribute”但由于“get_device_attribute”缺失,我们在发出“read”命令时发出“无效长度”问题。
我添加了一个名为:
的新APIstatic ssize_t get_device_attribute(struct device *dev, struct device_attribute *attr,
char *buf)
{
.........................
.........................
.........................
}
并更新了设备属性
static DEVICE_ATTR(device_property, 0777,get_device_attribute, set_device_attribute);
答案 0 :(得分:2)
无效长度通常表示目录。尝试cd到最后一个“device_attribute”。
Alternativeley你也可以在“/ proc”中搜索设备信息。
答案 1 :(得分:0)
您可能拥有Linux内核源代码, 搜索设备的特定sysfs实现,看看它是如何编程的。