打开PhotoViewPicker时默认选中上次选中的图片
=============================

#### 问题现象

通过Media Library Kit的PhotoViewPicker实现选择系统相册图片，之前选择的图片没有默认选中。

预期效果：选择图片->完成提交->下次进入标记选中状态（不完成提交下次进入不选中）。

实际效果：选择图片->完成提交->下次进入未标记选中状态。

#### 背景知识

通过[PhotoViewPicker](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-photoaccesshelper-photoviewpicker)选择系统相册图片时，可以使用PhotoSelectOptions属性控制选择的媒体文件类型、数量、预选择文件数据、推荐的媒体文件等。

#### 解决方案

PhotoViewPicker选择图片时不会对选择结果进行记录，建议可以自行保存每次选择的图片uri，再通过PhotoSelectOptions属性设置预选的图片数据。

1.  将每次选择的图片uri缓存到数组preSelected中。
2.  通过PhotoSelectOptions中preselectedUris属性，将缓存的uri设置为预选择的图片。

完整示例代码如下：

import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct Index {
  private preSelected: string\[\] \= \[\];

  build() {
    Column() {
      Button('Select')
        .padding(10)
        .fontSize(40)
        .onClick(() \=\> {
          let photoSelectOptions \= new photoAccessHelper.PhotoSelectOptions();
          photoSelectOptions.maxSelectNumber \= 9;
          photoSelectOptions.preselectedUris \= this.preSelected;
          photoSelectOptions.MIMEType \= photoAccessHelper.PhotoViewMIMETypes.IMAGE\_VIDEO\_TYPE;
          let photoViewPicker \= new photoAccessHelper.PhotoViewPicker();
          photoViewPicker.select(photoSelectOptions)
            .then((photoSelectResult: photoAccessHelper.PhotoSelectResult) \=\> {
              this.preSelected \= photoSelectResult.photoUris;
            })
            .catch((err: BusinessError) \=\> {
              console.error(\`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}\`);
            });
        });
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
    .alignItems(HorizontalAlign.Center);
  }
}

如果preselectedUris中预选择的图片已被删除，select接口不会报异常，也不会影响未删除的图片被默认选中。

目前PhotoViewPicker不支持将预选择的图片集中显示在列表头部，如果上次选中的图片是分散的，再次进入默认选中的图片仍然是分散的。