fix(roaming): 权限授予后页面内刷新状态

问题:用户在页面内跳系统设置授予定位权限再回来,GPS 监听不启动(必须退出重进页面)。
根因:permissionLauncher 回调是空的 { },不更新 hasPermission 状态。
修复:回调里检查 FINE/COARSE 权限并更新 hasPermission,触发 DisposableEffect 启动 GPS 监听。
影响:用户授权后立即生效,无需退出重进。
This commit is contained in:
mckero committed 2026-08-14 09:27:00 +00:00
1 parent aa10d4170c
commit 20e5b2f617
1 file changed
+5 -1
@@ -89,7 +89,11 @@ fun RoamingScreen() {
var hasPermission by remember { mutableStateOf(false) }
val permissionLauncher = rememberLauncherForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()
) { }
) { results ->
val fine = results[Manifest.permission.ACCESS_FINE_LOCATION] == true
val coarse = results[Manifest.permission.ACCESS_COARSE_LOCATION] == true
hasPermission = fine || coarse
}
LaunchedEffect(Unit) {
hourPrefix = SimpleDateFormat("HH:mm", Locale.getDefault()).format(Date()).substring(0, 3)
val fine = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) ==