kookmin-sw / capstone-2024-45

시간은행 v2
https://kookmin-sw.github.io/capstone-2024-45/
1 stars 1 forks source link

[Front][Permission] 권한 설정 화면 구현 완료 + 이슈 해결 과정 #32

Closed sunJ0120 closed 3 months ago

sunJ0120 commented 4 months ago
  1. 권한 설정 화면 구현 완료
  1. 권한 설정 관련 이슈 + 해결

문제 : provider 설정에서 빼먹은 부분이 있어서, 처음에 시스템 다이얼로그에서 권한 거부 -> 앱설정에서 권한 설정 후 다시 화면으로 돌아올 시, 자동으로 버튼이 바뀌어 있지 않고, 한 번 버튼을 눌러야만 "앱 시작하기"로 버튼이 바뀌는 문제 발생

해결 :

// 권한 상태를 확인하고 업데이트하는 메서드
  Future<void> checkAndUpdatePermissionStatusFromSettings() async {
    PermissionStatus status = await Permission.camera.status;
    updatePermissionStatus(status.isGranted);
    notifyListeners(); // 상태 변경을 구독자에게 알림
  }

provider 클래스에 권한을 확인하고 업데이트 하는 비동기 메서드 추가

// 위젯을 빌드할 때마다 권한 상태를 업데이트
    WidgetsBinding.instance!.addPostFrameCallback((_) {
      setState(() {
        provider.checkAndUpdatePermissionStatusFromSettings();
        isAgree = provider.isPermissionGranted;
      });
    });

Content에서, 위젯이 빌드 될 때마다 provider.checkAndUpdatePermissionStatusFromSettings();를 통해 권한 허용 상태를 체크해서 isAgree 변수 값을 바꿀 수 있도록 구성