【问题标题】:Detecting display type in Android在Android中检测显示类型
【发布时间】:2013-02-05 18:22:41
【问题描述】:

是否有任何机制(在 SDK 或 NDK 中)来获取有关当前显示的供应商信息(或者实际上是任何信息)?特别是,我希望找出显示器是 OLED 还是 LCD 还是其他显示器,因为我测试过的每个 OLED 设备都具有可怕的色彩保真度(过饱和);由于 Android 没有颜色校正,因此需要在应用程序级别进行校正。作为备用,手动列出流行的 OLED 设备并按设备类型进行查找在理论上是可行的,但是 (a) 那里有很多设备,并且 (b) 在设备而不是显示级别工作会增加额外的复杂性使用外部显示器的设备。即使把这份清单放在一起也是一个挑战......

【问题讨论】:

  • 试试Build.DISPLAY 我从来没有用过,所以我不能保证它,但它可能包含一些有用的东西。 Build docs
  • Build.DISPLAY 显然旨在作为“构建标识符的可显示(对用户)版本”,而不是“物理显示的标识符”。
  • 我认为没有针对此类信息的任何 API 调用。我想这是由某种供应商特定的设备驱动程序处理的,所以也许如果您检查 Android 内核的源代码,您可能会找到如何访问这些驱动程序的线索,但这只是一个模糊的猜测,实际上这样做可能是非常困难的核心东西。
  • @addaon 如果您在过去几个月开始研究此问题时获得了任何其他信息,那将是一个有趣的更新。

标签: android


【解决方案1】:

去了Android代码,我问了一个罐头,非常肯定地说没有返回显示类型的API方法。

【讨论】:

  • 所以没有人尝试在 Android 上进行颜色校正?
  • @addaon 颜色管理将是 Android 的一个不错的功能。当然,那里的各种显示器都非常需要它。
【解决方案2】:

Android 的很多Build 信息来自于查询/proc 目录。我开始在这里四处寻找,希望能找到一些东西——但有很多信息需要翻阅。这将是一个很好的起点——或者在命令行的其他地方寻找。

您可以通过导航到platform-tools 目录并键入来访问命令行

./adb shell

连接设备时。您还可以从代码中执行 shell 命令:

Process p = Runtime.getRuntime().exec("cat /proc/whatever");
//you can then use p to get the command output.

【讨论】:

    【解决方案3】:

    获取手机物理显示信息的一种简单方法是向站点发送获取请求并解析 HTML/JSON 信息。您可以将其保存到某种在线数据库以供将来使用。 GSMarena.com 上的信息示例。当然,您可以使用其他来源。

    请注意,我没有在此处展示 Android 手机,但它的工作方式相同。

    【讨论】:

      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 2010-10-13
      • 2016-11-19
      相关资源
      最近更新 更多