You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin如何实现调用系统默认图库打开指定相册文件夹

Xamarin 调用系统图库/指定存储文件夹实现方案

Android 平台实现

Android 可直接通过系统 Intent 实现需求,无需额外开发自定义浏览页面:

  • 权限配置:Android 13+ 需在 AndroidManifest.xml 中配置READ_MEDIA_IMAGES、READ_MEDIA_VIDEO权限,Android 12 及更低版本配置READ_EXTERNAL_STORAGE权限,跳转前需确保已完成动态权限申请。
  • 打开指定相册代码示例:
// 跳转至名称为MyCustomAlbum的相册页面,仅展示图片
var intent = new Intent(Intent.ActionView);
var mediaUri = Android.Provider.MediaStore.Images.Media.ExternalContentUri;
intent.SetDataAndType(mediaUri, "vnd.android.cursor.dir/image");
intent.PutExtra(Intent.ExtraAlbum, "MyCustomAlbum");
StartActivity(intent);

// 如需同时展示相册内的图片和视频,将MIME类型改为"vnd.android.cursor.dir/*"即可
  • 打开指定存储文件夹代码示例:
// 替换为你保存视频的文件夹路径
var targetFolderPath = Android.OS.Environment.GetExternalStoragePublicDirectory(
    Android.OS.Environment.DirectoryDcim + "/MyVideoFolder").AbsolutePath;
var folderUri = Android.Net.Uri.Parse(targetFolderPath);

var intent = new Intent(Intent.ActionView);
intent.SetDataAndType(folderUri, "resource/folder");
intent.AddFlags(ActivityFlags.GrantReadUriPermission);

if (intent.ResolveActivity(PackageManager) != null)
{
    StartActivity(intent);
}
else
{
    // 兜底方案:唤起系统选择器用文件管理器打开
    intent.SetDataAndType(folderUri, "*/*");
    StartActivity(Intent.CreateChooser(intent, "选择打开方式"));
}

iOS 平台实现

受iOS沙箱机制限制,官方未公开跳转指定相册的公开API,可通过私有协议实现主流版本适配:

  • 直接跳转系统相册主页面代码:
UIApplication.SharedApplication.OpenUrl(new NSUrl("photos-redirect://"));
  • 跳转自定义指定相册代码(适配iOS14+):
// 替换为你的自定义相册名称
var albumName = "MyCustomAlbum";
var fetchOptions = new PHFetchOptions
{
    Predicate = NSPredicate.FromFormat("localizedTitle == %@", new NSString(albumName))
};
var fetchResult = PHAssetCollection.FetchAssetCollections(
    PHAssetCollectionType.Album, PHAssetCollectionSubtype.Any, fetchOptions);

if (fetchResult.FirstObject is PHAssetCollection targetAlbum)
{
    var albumUrl = new NSUrl($"photos://album?id={targetAlbum.LocalIdentifier}");
    UIApplication.SharedApplication.OpenUrl(albumUrl);
}

注意:iOS的相册跳转私有协议未做官方兼容,少数系统版本可能出现跳转失败的情况,遇到适配问题可提示用户手动打开系统相册对应目录查看。

通用注意事项

  • 跳转前需确保存储/相册访问权限已被用户授予,否则会出现打开后无内容的问题
  • 相册名称、文件夹路径需和你保存媒体文件时的配置完全一致,否则无法正确筛选内容

内容的提问来源于stack exchange,提问作者blacky99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:54:03