您的位置:首页 > 移动开发 > Android开发

android 使用uinput模拟输入设备的方法

2014-01-13 15:42 1121 查看
   int setup_uinput_device(stVirtualInputDevData* mstVirtualInputDevData){    struct uinput_user_dev uinp; // uInput device structure    int i;

    // Open the input device    uinp_fd = open("/dev/uinput", O_WRONLY | O_NDELAY);    if (uinp_fd == 0) {        printf("Unable to open /dev/uinput\n");        return -1;    }

    // Intialize the uInput device to NULL    memset(&uinp, 0x00, sizeof(uinp));    strncpy(uinp.name, "virtualinputdev", sizeof(uinp.name)-1);    uinp.id.vendor = 0x1341;    uinp.id.product = 0x0001;    uinp.id.bustype = BUS_VIRTUAL;

    // Keyboard    ioctl(uinp_fd, UI_SET_EVBIT, EV_KEY);    for (i = mstVirtualInputDevData->min_keycode; i < mstVirtualInputDevData->max_keycode; i++) {        ioctl(uinp_fd, UI_SET_KEYBIT, i);    }

    // Create input device into input sub-system    if (write(uinp_fd, &uinp, sizeof(uinp)) != sizeof(uinp)) {        printf("First write returned fail.\n");        return -1;    }

    if (ioctl(uinp_fd, UI_DEV_CREATE)) {        printf("ioctl UI_DEV_CREATE returned fail.\n");        return -1;    }

    return 1;}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息