dart Image_picker不适用于Flutter上的Android 13

vdzxcuhz  于 2023-07-31  发布在  Flutter
关注(0)|答案(1)|浏览(158)

“您好,版本13的Android用户无法查看照片库,无论是更改用户的照片还是在应用程序的时间轴上发布照片。一旦加载设置为true,它将保持该状态。这里有一个代码块,可以更好地实现上下文,如果有人有一个想法可以帮助我解决它,我感谢大家。

return Container(
      color: TecnoColors.theme().white,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Container(
            height: w(180),
            child: Stack(
              alignment: Alignment.topCenter,
              children: <Widget>[
                FlavorProvider.instance.isWhiteLabelLight()
                    ? ColorFiltered(
                        colorFilter: tintMatrix(tintColor: TecnoColors.theme().blue2), child: profileBackgroundImage)
                    : profileBackgroundImage,
                Positioned(
                  bottom: 0,
                  child: GestureDetector(
                    onTap: () async {
                      if (!getUserBLoC(context).getSelectedCompany()!.canChangeProfilePicture!) {
                        showTecnoInfoAlert(context,
                            alertType: AlertType.error,
                            title: FlutterI18n.translate(context, "global.error"),
                            desc: FlutterI18n.translate(context, "profile.profilePicturePermission"),
                            buttonText: FlutterI18n.translate(context, "global.ok"), onTap: () {
                          Navigator.of(context).pop();
                        });
                      } else {
                        if (!getUserBLoC(context).getSelectedCompany()!.canChangeProfilePicture!) {
                          showTecnoInfoAlert(context,
                              alertType: AlertType.error,
                              title: FlutterI18n.translate(context, "global.error"),
                              desc: FlutterI18n.translate(context, "profile.profilePicturePermission"),
                              buttonText: FlutterI18n.translate(context, "global.ok"), onTap: () {
                            Navigator.of(context).pop();
                          });
                        } else {
                          if (widget.isCompanyProfile) return;
                          getLoadingBLoC(context).setLoading(true);
                          try {
                            File? image = await (MediaPicker.show(context, null,
                                justReturnFile: true, hideVideo: true, oneByOne: true));
                            if (image != null) {
                              await getUserBLoC(context).setPictureProfile(
                                  file: image, companyId: getUserBLoC(context).getSelectedCompany()!.id);
                              if (image.path.contains('.tecnotmp')) {
                                image.delete();
                              }
                            }
                            //Navigator.of(context).pop();
                          } on PlatformException catch (e) {
                            getLoadingBLoC(context).setLoading(false);

字符串
我试着更新插件,我做了测试和调试,但代码似乎是正确的工作,因为当我在其他版本的Android上测试它的工作完美

enxuqcxy

enxuqcxy1#

找到答案
Android 13(API 33)额外配置针对Android 13(API级别33)时,需要将以下额外配置添加到清单:

<manifest>
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <!-- If you want to read images-->
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- If you want to read videos-->
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> <!-- If you want to read audio-->
</manifest>

字符串
字体:https://pub.dev/packages/photo_manager

相关问题