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

我花了相当多的时间让我的用户界面只能使用键盘input。 但最终我不确定是否可以依靠Android设备都具有触摸屏的假设。

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

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

我花了相当长的时间来为自己弄清楚这个问题。 上面的海报是正确的,Android已经支持一些非触摸设备,并将在不久的将来 Google TV提供支持,但是就目前而言,CDD特别要求所有的Android设备都必须有一个触摸屏

基本上,Android兼容性计划的创build是为了对冲现在你担心的那种分裂问题。 它列出了一系列要求, 如果设备不符合这些要求,则无法访问Android Market。 这些要求包括触摸屏,无线通信,蓝牙,摄像头,等等。

如果你研究这些平板电脑和上网本,你会发现没有一个单独的Android电子市场。 Augen最近试图用他们的新GENTOUCH 78平板来拉一个快速的平板电脑,但不得不取消他们的说法 ,该平板电脑将被Android兼容团队击落后进行Android电子市场。

所以,如果您只是通过Android电子市场发布您的应用程序,那么在Google更改CDD之前,您无需担心。 但是,如果您想在其他app store中提供您的应用或直接下载,那么您将不得不担心您的关键模式导航问题。

如果有任何安慰,我发现许多应用程序都有完全相同的问题。 没有触摸屏就无法使用。 他们中的许多人也有焦点和软键盘的严重问题。 有时候,键盘应该隐藏起来。 有时,无论您点击EditText多less次,都无法popup键盘。 国际海事组织,Android框架不处理这些事情一切顺利。

鉴于此,看看Google TV如何适应这一切,一定会很有趣。 他们是否将CDD更新为与其机顶盒兼容? 他们会在Google TV实施中使用不同的SDK和CDD吗? 谈到Google TV时,他们会完全忽略兼容性计划吗? 你的猜测和我一样好。

更新:
看起来谷歌的某个人终于挺身而出,承认Android尚未准备好在平板电脑上运行: http : //phandroid.com/2010/09/10/shocker-google-says-android-not-meant-for -tablets合其电stream状态/

对我而言,这表示Google并没有为加速采用Android操作系统做好准备,也没有充分的路线图平台的未来。 支持大于480×800的屏幕几乎是不可能的,三星只能通过在Galaxy Tab上与Google密切合作才能做到。 所以我不太确定在不久的将来我们需要担心非触摸屏设备。 我相信他们最终会来到这里,但是当他们到达时,我们可能会看到一个单独的应用程序市场,或者是在现有市场上改变过滤scheme,一个新的CDD,谁知道。

对我来说,这是说Google仍然在玩它,我们也必须这样做。

到目前为止所有的手机都有触摸屏,但没有承诺,他们必须。

但是,上网本,笔记本电脑很多,很快就会成为没有触摸屏的电视机。 但是这些设备有鼠标。 从我看到的,鼠标input通过触摸系统泵,所以MouseDown ACTION_DOWN,等…(不知道右键点击虽然)

你只是在打电话吗? Android出现在包括电视在内的许多设备上我不知道是否会发布新的库来隔离部分设备,但如果你想要更广泛的观众,我build议保持键盘input可用,如果你是

谷歌电视(GTV)是最stream行的Android notouch设备(截至这个答案组成时)。 但是,如果您有“notouch”资源(例如res / layout-notouch /等目录),则有几个设备会调用notouch渲染。

为了适应notouch设备,确保焦点会引起一个视觉select指示器,并且(对于GTV)按键听众已经放置在方向键中央button上。 使用默认的小部件和主题通常会自动完成大部分的工作。 如果您制作自己的button,则需要使用背景9贴片进行聚焦和聚焦+按下。

在GTV上运行是一个很好的testing环境,可以确保notouch的正常工作,而GTV现在有一个模拟器 ,尽pipe它只能在Linux / x86上运行。