在 Jelly Bean 等旧设备上获取 Samsung KNOX api 版本

Posted

技术标签:

【中文标题】在 Jelly Bean 等旧设备上获取 Samsung KNOX api 版本【英文标题】:Get Samsung KNOX api version on old devices like Jelly Bean 【发布时间】:2020-08-20 04:36:04 【问题描述】:

我有一台搭载 android 4.3 Jelly Bean 的三星 Galaxy Camera 2(它与三星 Galaxy S3 的使用时间差不多)。

Their docs 告诉我,在 Jelly Bean 上我可以找到 KNOX Api 级别 5 - 10。

那么,我如何找出我实际拥有的 KNOX Api 级别?

我在设置的系统信息页面中找不到它 我还没有找到找回它的方法programmatically

【问题讨论】:

【参考方案1】:

首选方法:获取 API 级别为 int

EnterpriseDeviceManager.getAPILevel(); 上的文档关于 API 级别“自:Knox API 级别 24”是错误的!

EnterpriseDeviceManager.getAPILevel(); 确实可以在旧设备上运行,例如搭载 Android 4.2.2 的三星 Galaxy Camera NX(返回 7)和三星 Galaxy Camera 2(返回 9)使用 KNOX 的向后兼容库(Knox SDK Support Library for Old Namespace Translation)时!

替代方法:测试方法

这就是我们最终在旧设备上测试 KNOX Api 级别的方式。

我们在他们的文档中寻找只存在于某些 API 级别的方法和类:

【讨论】:

不错。那是一份侦探工作。你很幸运,版本之间有实际的 API 变化,而不仅仅是错误修复。 Indeed ;) 在编写我们意识到的高效应用程序时,并不需要知道确切的 API 级别。我们只是在使用它们之前检查方法的存在。【参考方案2】:

手动

较新的设备

设置 > 关于设备 > 软件信息 > Knox 版本

旧设备

在此处查找您的设备:Devices Secured by Knox

以编程方式

对于 API 级别 24 及更高级别,您可以使用 EnterpriseDeviceManager.getAPILevel() 检索 API 级别。它返回EnterpriseDeviceManager.KNOX_VERSION_CODES 中定义的任何常量。

使用该整数值,您可以转到reference table 并查看更多详细信息。

【讨论】:

安卓 4.3。如果我可以在“软件信息”中阅读它,我就不会问这个问题了。我绝对没有 API 级别 24。 我已经编辑了答案并添加了指向三星网站搜索页面的链接,您可以在其中按设备名称和型号进行搜索。不幸的是,您的设备 (GC200) 与其说是一部手机,不如说是一部相机,而且它甚至没有出现在那里。 那个列表是垃圾。它没有低于 Android 5.0 的设备。 GC200 支持 KNOX,但我们想确定版本。我们还有三星 Galaxy S4 mini 作为开发设备,它也没有出现在该列表中。

以上是关于在 Jelly Bean 等旧设备上获取 Samsung KNOX api 版本的主要内容,如果未能解决你的问题,请参考以下文章

Jelly Bean (api 16) 的 READ_LOGS 权限

Android 4.3 Jelly Bean 中的打印支持

Core Data 在 iPhone4 等旧设备上非常慢

相机 API 适用于 Jelly Bean 但不适用于 Kitkat

为 Lollipop 使用 Android SDK 18 (Jelly Bean)

JQuery Mobile CSS在Jelly Bean中将整个页面变成黑色