Skip to content

[Bug report] Incorrect permission limited state on Android 14+ devices  #1317

@asdfghjkl123111

Description

@asdfghjkl123111

Version

2.5.2

Platforms

Android

Device Model

Android 14+

flutter info

flutter run

How to reproduce?

1.因为安卓手机有部分选择相册的权限 比如说(小米,三星) 但是点击选择完成部分权限之后 获取权限的时候尽然不是limited而是authorized
2.安卓手机选择全部相册权限 返回尽然是limited

/// 检查是否为部分权限(同时支持 iOS 与 Android 14+)
Future isPartialPermission() async {
try {
if (Platform.isIOS) {
// iOS 14+ 支持 limited 权限状态
final permission = await PhotoManager.requestPermissionExtend();
debugPrint('iOS 权限状态: ${permission.toString()}');
return permission == PermissionState.limited;
}

  if (Platform.isAndroid) {
    final sdk = await _getAndroidSdkVersion();
    // Android 14+ 支持“选择部分照片访问”,permission_handler 在此状态下返回 isLimited
    if (sdk >= 34) {
        final permission = await PhotoManager.getPermissionState(requestOption:PermissionRequestOption());
        // final status = await Permission.photos.status;
        debugPrint('Android 权限状态: ${permission.toString()}');
        // debugPrint('Android 权限状态: ${status.toString()}');
        return permission == PermissionState.limited;
    }
    // Android 13 及以下不支持部分相册权限
    return false;
  }

  // 其他平台不支持
  return false;
} catch (e) {
  SentryUtil.instance.captureException(e);
  debugPrint('检测部分权限失败: $e');
  return false;
}

}

Logs

Example code (optional)

Contact

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions