如何确定一个Android设备是否具有触摸屏?

36

我花费了相当多的时间,使我的用户界面只能通过键盘输入来操作。但是最后我不确定我是否能够依赖这样一种假设,即所有 Android 设备都有触摸屏。

有没有办法确定一个 Android 设备是否具有触摸屏?


Android设备列表,http://en.wikipedia.org/wiki/List_of_Android_devices - karim
4个回答

24

您应该研究现有设备并阅读Android兼容性定义文档(CDD),然后自己决定。

我花了相当多的时间尝试解决这个问题。上面的帖子正确指出,Android已经驱动一些非触摸设备,并将很快驱动Google电视,但是目前,CDD明确要求所有Android设备都必须具备触摸屏

基本上,Android兼容性计划是为了规避您现在担心的那种碎片化问题而创建的。它列出了许多要求,如果一个设备不符合这些要求,则无法访问Android市场。这些要求包括触摸屏、无线通信、蓝牙、相机等等。

如果您调查这些平板电脑和上网本,您会发现没有一个搭载Android Market。Augen最近试图通过他们的新GENTOUCH 78平板电脑来欺骗人们,但在被Android兼容性团队打回后,不得不撤回他们的声明,称平板电脑将搭载Android Market。

因此,如果您只通过Android Market分发应用程序,则在Google更改CDD之前,您无需担心任何问题。但是,如果您想在其他应用商店或直接下载中提供应用程序,则必须担心您的关键模式导航问题。

如果这可以安慰你,我发现许多应用程序都有完全相同的问题;它们没有触摸屏就无法使用。其中许多应用程序还存在着焦点和软键盘等严重问题。有时键盘应该隐藏但却一直显示。有时无论你点击多少次EditText,键盘都不会弹出来。在我看来,Android框架在这些方面处理得并不好。

考虑到这一切,看看Google TV将如何适应这一切肯定是很有趣的。他们会更新CDD以兼容他们的机顶盒吗?他们会为Google TV实现使用不同的SDK和CDD吗?当涉及到Google TV时,他们会完全忽略兼容性计划吗?你的猜测和我的一样好。

更新:
看起来Google终于有人站出来承认Android目前还没有准备好在平板电脑上运行: http://phandroid.com/2010/09/10/shocker-google-says-android-not-meant-for-tablets-in-its-current-state/

对我来说,这意味着Google没有为加速采用Android OS做好准备,并没有充分规划该平台的未来。支持大于480x800像素的屏幕几乎是不可能的,而三星只能通过与谷歌在Galaxy Tab上密切合作才能实现。所以我不确定我们需要在不久的将来担心非触摸屏设备。它们最终肯定会到来,但当它们到来时,我们可能会看到一个专门为这些设备设计的应用市场,或者对现有市场进行一些更改,也可能会有一个新的CDD,谁知道呢。

对我来说,这意味着Google仍在试探中,我们也只能和他们一样尝试。


3
我们已经有先例可以预测未来会发生什么——如果未来版本的CDD允许缺少之前所需功能的设备,导致应用程序可能会依赖这些功能,则这种变化的一部分将涉及支持这些应用程序的平台。 这可能采取现有应用程序继续工作的兼容性形式(参见不同屏幕密度的引入),或者对现有应用程序进行过滤,直到它们更新以明确支持新类型的设备(参见小屏幕的引入)。 - hackbod
感谢您的补充,Hackborn女士。这是否意味着一旦引入Google TV,CDD将发生巨大变化(例如,摄像头、GPS、USB和触摸屏要求都将被删除)?新的屏幕标准是否会添加到第8.1节?您能否让我们快速了解可以期待哪些变化? - Neil Traft

3

到目前为止,所有的手机都有触摸屏,但并不意味着它们必须有。

然而,有很多没有触摸屏的上网本、笔记本电脑和即将推出的电视。这些设备有鼠标。据我所见,鼠标输入会通过触摸系统进行处理,因此MouseDown就是ACTION_DOWN等等(不知道右键点击怎么办)。


2

您是否只针对手机进行目标定位?Android系统正在许多设备上出现,包括电视。我不知道新的库是否会被发布以将设备的各个部分隔离开来,但如果您想要更广泛的受众,我建议保持键盘输入可用。


-1

Google TV(GTV)是目前最受欢迎的Android非触摸设备(在本回答撰写时)。然而,如果您有“notouch”资源(例如类似res/layout-notouch/的目录),那么还有几种设备将需要调用非触摸渲染。

为了适应非触摸设备,请确保焦点会引起可视化选择指示器,并且(对于GTV)方向键中心按钮上已经设置了按键监听器。使用默认的小部件和主题通常可以自动完成大部分工作。如果您自己制作按钮,则需要为聚焦和聚焦+按下状态准备背景9-patches。

在GTV上运行是一个很好的测试环境,以确保非触摸功能正常运行,现在GTV有一个模拟器,尽管它只能在Linux/x86上运行。


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