确定设备是否有触摸屏

gos*_*vka 7 android touchscreen

我的应用程序在标准手机上运行,​​但它也运行在Android播放器上,我通过HDMI连接到我的电视,并使用鼠标进行导航.有没有办法以编程方式确定设备是否具有触摸屏支持,以便我可以区分这两种导航方式?

我尝试过这个,但它在两个设备上都返回true:

getPackageManager().hasSystemFeature("android.hardware.touchscreen");
Run Code Online (Sandbox Code Playgroud)

Anu*_*kur 4

PackageManager 将引用可能具有触摸屏的 Android 播放器本身。它无法检测播放器显示屏是否通过 HDMI 路由到外部显示器。当您询问软件包管理器设备是否有触摸屏时,它指的是播放器而不是外部显示器。

您可以做的一件事是通过检查 HDMI 端口是否处于活动状态来检测播放器是否连接到外部显示器,并相应地更改您的导航。

请参阅:检测 Android 设备中的 HDMI 端口

旁注:如果播放器没有触摸屏,但包管理器错误地报告有触摸屏,则可能是包管理器存在错误,或者 Android 的设备制造商实现可能存在错误。