fix(android): default to entire screen for capture (#16163)

Use MediaProjectionConfig on Android 14+ to remove the app-versus-screen choice while retaining the legacy fallback.
This commit is contained in:
vipe3
2026-09-16 12:01:26 +08:00
committed by GitHub
parent 28269af9c7
commit 8154c026a4

View File

@@ -2,6 +2,7 @@ package com.carriez.flutter_hbb
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.media.projection.MediaProjectionConfig
import android.media.projection.MediaProjectionManager import android.media.projection.MediaProjectionManager
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
@@ -19,7 +20,13 @@ class PermissionRequestTransparentActivity: Activity() {
ACT_REQUEST_MEDIA_PROJECTION -> { ACT_REQUEST_MEDIA_PROJECTION -> {
val mediaProjectionManager = val mediaProjectionManager =
getSystemService(MEDIA_PROJECTION_SERVICE) as MediaProjectionManager getSystemService(MEDIA_PROJECTION_SERVICE) as MediaProjectionManager
val intent = mediaProjectionManager.createScreenCaptureIntent() val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
mediaProjectionManager.createScreenCaptureIntent(
MediaProjectionConfig.createConfigForDefaultDisplay()
)
} else {
mediaProjectionManager.createScreenCaptureIntent()
}
startActivityForResult(intent, REQ_REQUEST_MEDIA_PROJECTION) startActivityForResult(intent, REQ_REQUEST_MEDIA_PROJECTION)
} }
else -> finish() else -> finish()