Android – 读取“设备属性”失败,错误“无效的长度”

我正在使用Android作为操作系统的TI OMAP平台上工作。 对于一个UseCase,我们必须切换设备中的一个LED。 LED具有“设备属性”的数量,并且从应用层[.java],我们要读取“设备属性”。

当我们在adb提示符下运行cat命令时:

# cat /sys/devices/device_name/device_attribute # device_attribute:invalid length 

我们得到错误“无效的长度”。 因此,我想知道是否有一种方法可以读取“设备属性”,使其可以被应用层访问。

我在另一个论坛上发现了一个类似的问题,但是也没有答案。

感谢您的答复!

解决scheme该设备只有“set_device_attribute”,但由于“get_device_attribute”丢失,我们得到“无效的长度”的问题时,发出“设备属性”的“读取”命令。

我添加了一个新的API名为:

 static 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); 

无效的长度通常表示一个目录。 尝试cd到最后的“device_attribute”。

Alternativeley您还可以在“/ proc”中搜索设备信息。

您可能拥有Linux内核源代码,搜索设备的特定sysfs实现,看看它是如何编程的。