Permissions 如何检测更改设置后重新打开的应用程序?

Permissions 如何检测更改设置后重新打开的应用程序?,permissions,flutter,settings,Permissions,Flutter,Settings,我正在使用在我的Flitter应用程序中请求联系人权限 当用户按下“不再询问”选项并拒绝该权限时,我会给出一个按钮,该按钮使用openSettings打开设置。 现在,如果用户启用权限并按back键进入应用程序,我如何检测该权限已被授予 下面是一些代码来提供一个想法- Text( 'Permission to access Contacts was denied.\nPlease press Settings to provide permissions and continue conne

我正在使用在我的Flitter应用程序中请求联系人权限

当用户按下“不再询问”选项并拒绝该权限时,我会给出一个按钮,该按钮使用openSettings打开设置。 现在,如果用户启用权限并按back键进入应用程序,我如何检测该权限已被授予

下面是一些代码来提供一个想法-

Text(
  'Permission to access Contacts was denied.\nPlease press Settings to provide permissions and continue connecting!',
),
MaterialButton(
  onPressed: () {
    SimplePermissions.openSettings();
  },
  child: Text('Settings'),
)
你可以用。它允许您检测小部件的生命周期。 使用WidgetsBindingObserver扩展当前状态,并将这些行添加到initState

WidgetsBinding.instance.addObserver(this); //this sets WidgetsBindingObserver
requestPermission(); //this will request the permission on initial load.
将以下行添加到您的状态

@override
void didChangeAppLifecycleState(AppLifecycleState state) {
  checkPermission(); //this will check the status of permission when the user returns back from the settings page.
}


checkPermission() async {
  bool res = await SimplePermissions.checkPermission(Permission.Camera);
  if (!res) {
    setState(() {
      _statusMessage = "waiting for camera permission";
    });
  } else {
    setState(() {
      _statusMessage = "camera permission has been granted";
    });
  }
}

检查完整的示例代码。

您好,我的回答解决了您的问题吗?嘿,您能解释一下代码吗?我什么时候打开设置?我从未使用过WidgetsBindingObserver类。@KeertiPurswani您希望我如何解释它?抱歉,我错过了您的评论。如果可能的话,你能帮我查一下吗-