是否有一个API用于确定应用程序运行的设备是否恰好是Samsung" Edge"设备?也就是说,具有圆形边缘的装置与具有直角边缘的装置相对。 (我相信三星是目前制造这些产品的唯一一家。)
此外,一些较老的" Edge"设备只有一个圆形边缘,而较新的设备有两个。是否可以区分这些情况:没有圆边,一个圆边,两个圆边?
答案 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
类。
如果找到一个,则我们可以查询COCKTAIL_PANEL的可用性。
注意:在调用isEdgeDevice()
方法之前,我将检查Build.MANUFACTURER
和Build.BRAND
是否是“三星”,然后将继续检查其边缘设备。