Android系统默认支持的最大touch点数

Android系统中默认支持的最多touch点数是16个,一般情况下点击数也达不到这么多,这个16是哪里定义的呢,这里记录一下,

frameworks/native/services/inputflinger/InputDispatcher.cpp中有

186static bool validateMotionEvent(int32_t action, int32_t actionButton, size_t pointerCount,
187        const PointerProperties* pointerProperties) {
188    if (! isValidMotionAction(action, actionButton, pointerCount)) {
189        ALOGE("Motion event has invalid action code 0x%x", action);
190        return false;
191    }
192    if (pointerCount < 1 || pointerCount > MAX_POINTERS) {
193        ALOGE("Motion event has invalid pointer count %zu; value must be between 1 and %d.",
194                pointerCount, MAX_POINTERS);
195        return false;
196    }
197    BitSet32 pointerIdBits;
198    for (size_t i = 0; i < pointerCount; i++) {
199        int32_t id = pointerProperties[i].id;
200        if (id < 0 || id > MAX_POINTER_ID) {
201            ALOGE("Motion event has invalid pointer id %d; value must be between 0 and %d",
202                    id, MAX_POINTER_ID);
203            return false;
204        }
205        if (pointerIdBits.hasBit(id)) {
206            ALOGE("Motion event has duplicate pointer id %d", id);
207            return false;
208        }
209        pointerIdBits.markBit(id);
210    }
211    return true;
212}

192 if (pointerCount < 1 || pointerCount > MAX_POINTERS) {

193 ALOGE("Motion event has invalid pointer count %zu; value must be between 1 and %d.",

194 pointerCount, MAX_POINTERS);

195 return false;

可以看到,最大点数是MAX_POINTERS,

定义在frameworks/native/include/input/Input.h

#define MAX_POINTERS 16

119/*
120 * Maximum number of pointers supported per motion event.
121 * Smallest number of pointers is 1.
122 * (We want at least 10 but some touch controllers obstensibly configured for 10 pointers
123 * will occasionally emit 11.  There is not much harm making this constant bigger.)
124 */
125#define MAX_POINTERS 16
126
127/*
128 * Maximum number of samples supported per motion event.
129 */
130#define MAX_SAMPLES UINT16_MAX
131
132/*
133 * Maximum pointer id value supported in a motion event.
134 * Smallest pointer id is 0.
135 * (This is limited by our use of BitSet32 to track pointer assignments.)
136 */
137#define MAX_POINTER_ID 31

这里也定义了最大的POINTER_ID是31

参考资料

https://blog.csdn.net/u013491946/article/details/86012635

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值