Merge branch 'dev_arch_opt_3.0' into 'dev_robobus-m1-p-app-module_1.0.0_230112_1.0.0'
[dev_arch_opt_3.0] See merge request zhjt/AndroidApp/MoGoEagleEye!536
This commit is contained in:
@@ -15,6 +15,57 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
object MultiDisplayUtils {
|
||||
private val TAG: String = "MultiDisplayUtils"
|
||||
|
||||
/**
|
||||
* 定昌电子,6屏幕异显 对应的lcd匹配数组, 当前数组只对应于6屏异显,
|
||||
* 如果是其他屏幕个数, 需要自己重新对应下相关的索引
|
||||
* display 里面查看port对应的值
|
||||
*/
|
||||
private var lcd_sub_port_six_lcd_mode = arrayOf(
|
||||
// main lcd // HDMI-1
|
||||
//-------------------begin 定昌电子 RK3588 -------------------
|
||||
"port=240", // HDMI-2
|
||||
"port=3", // HDMI-3
|
||||
"port=243", // HDMI-4
|
||||
"port=2", // HDMI-5
|
||||
"port=1", // HDMI-6
|
||||
//-------------------end 定昌电子 RK3588 -------------------
|
||||
)
|
||||
|
||||
/**
|
||||
* 获取其他的屏幕
|
||||
*/
|
||||
fun getOtherDisplay(): Array<Display?> {
|
||||
val mDisplayManager =
|
||||
Utils.getApp().getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
|
||||
// 获取除了内置屏幕(主屏幕)的其它屏幕
|
||||
val displays = mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION)
|
||||
// 初始化新的集合进行接收排序后的屏幕信息
|
||||
val displaysList = arrayOfNulls<Display>(displays.size)
|
||||
|
||||
// 判断副屏个数
|
||||
if (displays.isNotEmpty()) {
|
||||
// 循环出来副屏幕进行重新排序
|
||||
for (i in displays.indices) {
|
||||
// 这里如果需要固定某个屏幕, 使用 if( display.toString().indexOf("port=1")!=-1) ) 而不是使用 display[i]
|
||||
val strDisplayString: String = displays[i].toString()
|
||||
for (j in lcd_sub_port_six_lcd_mode.indices) { // 这里增加port的匹配, 如果不需要对应的匹配 可看下面的other LCD
|
||||
if (strDisplayString.indexOf(lcd_sub_port_six_lcd_mode[j]) != -1) { // 查找我们实际屏幕的匹配port
|
||||
displaysList[j] = displays[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 没有匹配到的显示
|
||||
for (i in displays.indices) {
|
||||
if (displaysList[i] == null) {
|
||||
displaysList[i] = displays[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
return displaysList
|
||||
}
|
||||
|
||||
|
||||
// 获取 是否支持扩展屏幕打开应用
|
||||
fun isSupportMultiDisplay(context: Context): Boolean {
|
||||
// 先检查一下是不是支持在第二屏上显示activity这个特性,
|
||||
|
||||
Reference in New Issue
Block a user