4

我正在使用Android作爲操作系統的TI OMAP平臺上工作。對於一個UseCase,我們必須切換設備中的一個LED。 LED具有多個「設備屬性」,並且來自應用層[.java],我們想要讀取「設備屬性」。Android - 讀「設備屬性」失敗,錯誤「無效長度」

當我們運行的亞行提示符cat命令:

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

我們得到錯誤「無效的長度」。因此,我想知道是否有讀取「設備屬性」的方法,以使其可以被應用層訪問。

我在另一個論壇http://android.modaco.com/topic/312770-possible-solution-for-lack-of-notification-light-developers-needed上發現了一個類似的問題,但它也沒有答案。

感謝您的回覆!

解決方案 該設備只具有「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); 

回答

2

無效的長度通常表示目錄。嘗試cd到最後的「device_attribute」。

Alternativeley您還可以搜索「/ proc」中的設備信息。

0

您可能擁有Linux內核源代碼 搜索設備的特定sysfs實現,查看它是如何編程的。

+1

是的,我看着該設備,即LED的sysfs實施。我目前只實現了「set_device_attribute」功能,現在我正在研究該屬性的「get_device_attribute」功能。即靜態DEVICE_ATTR(device_attribute,0777,** get_device_attribute **,set_device_attribute); – hjsblogger

相關問題