如何确定触摸了我的安卓设备的什么位置?

6
我想知道如何确定我的安卓设备屏幕上接触的物体是什么,比如说如果是手指接触,它会知道是手指,如果是圆珠笔、铅笔、笔记本或者其他物品,它会知道不是手指。触摸屏幕是如何确定被接触的物体的?因为我想开发一个指纹识别器。我该使用什么技术?是否有安卓函数可以确定屏幕上接触的物体是什么?谢谢。我不能很好地解释,但希望你能明白我的意思。

2
要构建一个真正的“指纹扫描仪”,您需要一个能够真正扫描手指的屏幕。如果你得到了一个这样的屏幕,它将自动解决识别被触摸物体的问题。 :) - Harry Joy
4个回答

1

您的设备屏幕没有此类传感器来确定触摸类型。


0

如果你的API版本在14或以上,那么你可以很容易地实现这个:

myView.setOnTouchListener(new Button.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent arg1) {
                     if (arg1.getAction() == android.view.MotionEvent.ACTION_DOWN
                              && (MotionEvent.TOOL_TYPE_FINGER == arg1.getToolType(0)) {    
                        Toast.makeText(this,
                                        "You touched me with your finger!",
                                        Toast.LENGTH_LONG).show();
                    }
                     return true;
                }
        });

这个属性只是告诉你有一个触摸输入,但区分了触控笔和鼠标指针。大多数设备使用热感应来检测触摸输入,但一些设备已经被制造出来模拟手指输入。例如智能手机手套、iPad触控笔。


如果您想要一个更低级别的API解决方案,请查看我的答案:http://stackoverflow.com/questions/11218944/getting-just-the-ontouch-event-android/11219017#comment14734118_11219017 - Jack Satriano

0

很遗憾,我们今天在手机上使用的触摸屏技术还没有那么先进。当然,我也想在Android上构建一个生物识别安全解锁应用程序 ;)


0

触摸屏不决定什么东西触摸它们。

电阻式触摸屏的情况下,它们仅根据工具施加的压力来判断。 (这些有点过时,我不知道有任何使用这种类型触摸屏的安卓设备。)

电容式触摸屏,正如你可能猜到的那样,使用电容器和电流来确定何时被触摸。由于人体皮肤是导体,它会发出信号表明屏幕已被触摸。然而,他们开发了也是导电的触控笔,所以它们也会触发屏幕。然而,屏幕并不知道它们之间的区别;它们只是电流的导体。

通过智能手机的触摸屏技术,你无法确定指纹的精确形状。你只能确定触摸的压力、表示触摸区域的椭圆的主要次要轴,或者触摸的大致大小。没有更多的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接