fix(roaming): 权限授予后页面内刷新状态
问题:用户在页面内跳系统设置授予定位权限再回来,GPS 监听不启动(必须退出重进页面)。
根因:permissionLauncher 回调是空的 { },不更新 hasPermission 状态。
修复:回调里检查 FINE/COARSE 权限并更新 hasPermission,触发 DisposableEffect 启动 GPS 监听。
影响:用户授权后立即生效,无需退出重进。
This commit is contained in:
1 parent
aa10d4170c
commit
20e5b2f617
1 file changed
+5
-1
+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) ==
|
||||
|
||||
Reference in new issue
Block a user