import * as MediaLibrary from 'expo-media-library'; export type MediaItem = { id: string; uri: string; creationTime: number; filename: string; }; // 获取指定时间范围内的图片 export const getFilteredMedia = async (range: 'today' | 'week' | 'month' | 'all'): Promise => { const { status } = await MediaLibrary.requestPermissionsAsync(); if (status !== 'granted') throw new Error('Permission not granted'); console.log("statusq111111111111111111", status); let cutoffDate: Date; switch (range) { case 'today': cutoffDate = new Date(); cutoffDate.setHours(0, 0, 0, 0); break; case 'week': cutoffDate = new Date(); cutoffDate.setDate(cutoffDate.getDate() - 7); break; case 'month': cutoffDate = new Date(); cutoffDate.setMonth(cutoffDate.getMonth() - 1); break; default: cutoffDate = new Date(0); // 所有图片 } console.log("cutoffDateq111111111111111111", cutoffDate); const albums = await MediaLibrary.getAlbumsAsync({ includeSmartAlbums: true }); console.log("albumsq111111111111111111", albums); let allAssets: MediaItem[] = []; for (const album of albums) { const result = await MediaLibrary.getAssetsAsync({ album: album.id, mediaType: ['photo'], first: 1000, }); console.log("result111111111111", result); const filtered = result.assets .filter(asset => asset.creationTime > cutoffDate.getTime()) .map(asset => ({ id: asset.id, uri: asset.uri, creationTime: asset.creationTime, filename: asset.filename, })); console.log("filtered111111111111", filtered); } console.log("allAssetsq111111111111111111", allAssets); return allAssets; };