如何在运行时找到硬件属性? 我希望能够知道设备是否有物理键盘,d-pad,轨迹球等。
答案 0 :(得分:2)
处理不同硬件配置的首选方法似乎是define different Resources and let Android pick the relevant one for the hardware。文档说:
您可以根据设备上的UI语言或硬件配置为应用程序提供不同的资源。请注意,虽然您可以包含不同的字符串,布局和其他资源,但SDK不会公开允许您指定要加载的备用资源集的方法。 Android会检测硬件和位置的正确设置,并根据需要加载它们。
但是,没有什么可以阻止您在应用程序中使用多个版本的属性文件,并使用这些版本来确定硬件配置。例如,该文件的一个版本将包含dpad = true
,另一个版本将包含dpad = false
,Android将选择与硬件匹配的文件版本,然后您可以阅读dpad
属性。不可否认,这将是相当繁琐的,但我无法在API中找到更简单的方法来执行此操作。
答案 1 :(得分:2)
您可以使用getResources().getConfiguration()
。
例如:
getResources().getConfiguration().navigation
那种导航方法 可在设备上使用。之一: NAVIGATION_DPAD,NAVIGATION_TRACKBALL, NAVIGATION_WHEEL。