Android 如何使setLaunchBounds与自由形式的窗口应用程序一起工作?
我正在用Kotlin编写一个Android启动器。它应该以自由模式打开应用程序。我希望下面的代码可以在屏幕的左半部分打开一个应用程序。取而代之的是,它以一半大小打开屏幕中间的应用程序。 有趣的是,当我最大化应用程序时,从概览中我再次将其设置为窗口模式,它确实占据了我使用LaunchBounds设置的区域,即屏幕的左半部分 有什么办法可以让这项工作马上开始吗Android 如何使setLaunchBounds与自由形式的窗口应用程序一起工作?,android,kotlin,multi-window,Android,Kotlin,Multi Window,我正在用Kotlin编写一个Android启动器。它应该以自由模式打开应用程序。我希望下面的代码可以在屏幕的左半部分打开一个应用程序。取而代之的是,它以一半大小打开屏幕中间的应用程序。 有趣的是,当我最大化应用程序时,从概览中我再次将其设置为窗口模式,它确实占据了我使用LaunchBounds设置的区域,即屏幕的左半部分 有什么办法可以让这项工作马上开始吗 private fun launchPackage(context: Context, packageName : String) {
private fun launchPackage(context: Context, packageName : String) {
val metrics = getRealDisplayMetrics(context)
val options = ActivityOptions.makeBasic()
options.launchBounds = leftSide(metrics)
val launchIntent = context.packageManager.getLaunchIntentForPackage(packageName)
context.startActivity(launchIntent, options.toBundle())
}
private fun leftSide(metrics: DisplayMetrics) : Rect {
val left = 0
val top = 0
val right = metrics.widthPixels / 2
val bottom = metrics.heightPixels
return Rect(left, top, right, bottom)
}
private fun getRealDisplayMetrics(context: Context): DisplayMetrics {
val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
val defaultDisplay = windowManager.defaultDisplay
val metrics = DisplayMetrics()
defaultDisplay.getMetrics(metrics)
return metrics
}