WEB开发网
开发学院手机开发Android 开发 android实现触摸屏校准 阅读

android实现触摸屏校准

 2010-08-22 04:54:00 来源:WEB开发网   
核心提示:* ioctl(fd, EVIOCGABS(axis), &info)* src file: evDev.c*/if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) {t = _IOC_NR(cmd) & ABS_MAX;abs.value = dev->

* ioctl(fd, EVIOCGABS(axis), &info)

* src file: evDev.c

*/

if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) {

t = _IOC_NR(cmd) & ABS_MAX;

abs.value = dev->abs[t];

abs.minimum = dev->absmin[t];

abs.maximum = dev->absmax[t];

abs.fuzz = dev->absfuzz[t];

abs.flat = dev->absflat[t];

Android 底层驱动

EventHub.cpp

static const char *device_path = "/dev/input";

openPlatformInput(void)

scan_dir(device_path);

open_device(devname);

fd = open(deviceName, O_RDWR);

/*

* 对外接口,getEvent,

* inotify 监控device_path目录, 使用poll机制轮询 inotify 和各个输入设备的可用状态。 解析事件或输入信息,放入各个传出参数中。

*/

bool EventHub::getEvent(int32_t* outDeviceId, int32_t* outType,

int32_t* outScancode, int32_t* outKeycode, uint32_t *outFlags,

int32_t* outValue, nsecs_t* outWhen)

JNI 部分: com_android_server_KeyInputQueue.cpp. 提供接口

static JNINativeMethod gInputMethods[] = {

/* name, signature, funcPtr */

{ "readEvent", "(Landroid/view/RawInputEvent;)Z",

(void*) android_server_KeyInputQueue_readEvent },

{ "getDeviceClasses", "(I)I",

(void*) android_server_KeyInputQueue_getDeviceClasses },

{ "getDeviceName", "(I)Ljava/lang/String;",

(void*) android_server_KeyInputQueue_getDeviceName },

{ "getAbsoluteInfo", "(IILcom/android/server/InputDevice$AbsoluteInfo;)Z",

(void*) android_server_KeyInputQueue_getAbsoluteInfo },

{ "getSwitchState", "(I)I",

(void*) android_server_KeyInputQueue_getSwitchState },

{ "getSwitchState", "(II)I",

(void*) android_server_KeyInputQueue_getSwitchStateDevice },

上一页  1 2 3 4 5 6 7  下一页

Tags:android 实现 触摸屏

编辑录入:coldstar [复制链接] [打 印]
赞助商链接