如何以编程方式检测应用程序是否在Samsung" Edge"屏幕?

时间:2017-10-19 18:52:34

标签: android samsung-edge

是否有一个API用于确定应用程序运行的设备是否恰好是Samsung" Edge"设备?也就是说,具有圆形边缘的装置与具有直角边缘的装置相对。 (我相信三星是目前制造这些产品的唯一一家。)

此外,一些较老的" Edge"设备只有一个圆形边缘,而较新的设备有两个。是否可以区分这些情况:没有圆边,一个圆边,两个圆边?

1 个答案:

答案 0 :(得分:0)

the SDK docs上阅读后,我也遇到了这个问题,检查了jar,并尝试了一些错误。这是我用来检查Samsung Edge设备(即Samsung Galaxy S8 / S9)而无需添加SDK库的方法。

internal fun isEdgeDevice(): Boolean {
  var hasCocktailPanel = false
  try {
    val sLookImplClass = Class.forName("com.samsung.android.sdk.look.SlookImpl")
    if (sLookImplClass != null) {
      val isFeatureEnabledMethod =
        sLookImplClass.getDeclaredMethod("isFeatureEnabled", Int::class.java)
      hasCocktailPanel = isFeatureEnabledMethod.invoke(null, 7) as Boolean
    }
  } catch (ignored: Exception) {
  }
  return hasCocktailPanel
}

说明:

此方法尝试查找SlookImpl类。

Jar

如果找到一个,则我们可以查询COCKTAIL_PANEL的可用性。

cocktail

注意:在调用isEdgeDevice()方法之前,我将检查Build.MANUFACTURERBuild.BRAND是否是“三星”,然后将继续检查其边缘设备。

>