未为该类定义方法“PermissionHandler”

Bla*_*nka 6 dart flutter

升级PermissionHandler到最新版本 (5.0.0) 后。在PermissionHandler()没有找到和也 The name 'PermissionGroup' isn't a type so it can't be used as a type argument.

这是一个代码片段:

  PermissionStatus permission = await PermissionHandler().checkPermissionStatus(PermissionGroup.storage);
  if (permission != PermissionStatus.granted && permission != PermissionStatus.neverAskAgain) {
    Map<PermissionGroup, PermissionStatus> permissions = await PermissionHandler().requestPermissions([PermissionGroup.storage]);
    if (permissions.containsValue(2))
      fileDownload(context, finalUrl);
  } 
Run Code Online (Sandbox Code Playgroud)

问题是什么?

Bla*_*nka 7

那是因为permission_handler: ^5.0.0作者BaseFlow使我们可以更直观地使用此问题代码 (#230) 中的要求

您的代码片段需要更改如下:

  if (await Permission.storage.request().isGranted) {
      fileDownload(context, finalUrl);
  }
Run Code Online (Sandbox Code Playgroud)

所以现在那些映射如下:

old way                                                 new way
-------                                                 -------

await PermissionHandler()
   .checkPermissionStatus(PermissionGroup.camera)       await PermissionGroup.camera.status

await PermissionHandler().requestPermissions(
   [PermissionGroup.camera]))[PermissionGroup.camera]   await PermissionGroup.camera.request()

await PermissionHandler().requestPermissions(
   [PermissionGroup.camera, PermissionGroup.storage]))  await [PermissionGroup.camera,                                   PermissionGroup.storage].request()

await PermissionHandler().checkServiceStatus
   (PermissionGroup.location)                           await Permission.location.serviceStatus.isEnabled
Run Code Online (Sandbox Code Playgroud)

在此处阅读更多信息:此问题代码 (#230)


che*_*777 5

使用 permission_handler: ^3.0.0 ,它对我有用