iOS исключает изображения из WhatsApp в запросе фреймворка Photos - PullRequest
0 голосов
/ 26 октября 2018

Можно ли запрашивать только PHAssets, снятые камерой устройства?Например, исключить изображения, отправленные вам WhatsApp.

Я безуспешно пробовал следующее: 1. Фильтровать по активу mediaSubtype и sourceType 2. Фильтровать по оригинальному имени файла, так как изображения WhatsApp обычно используют UUID в имени файла.

Второй вариант кажется наиболее перспективнымвозможно, в сочетании с другими метаданными, такими как местоположение (изображения WhatsApp обычно удаляют эту информацию).

В идеале фильтрация должна выполняться по запросу PHAsset, и для повышения производительности не нужно вызывать ImageManager.requestImage ().

1 Ответ

0 голосов
/ 26 декабря 2018

Вы можете отфильтровать ресурсы, которые есть в альбоме WhatsApp.

Вот пример функции, которую вы можете использовать (swift 4.2):

static private func assetIsFromWhatsapp(_ asset : PHAsset) -> Bool {
    let collection = PHAssetCollection.fetchAssetCollectionsContaining(asset, with: .album, options: nil)

    for index in 0..<collection.count  {
        let item = collection.object(at: index)
        if item.localizedTitle == "WhatsApp" {
            return true
        }
    }

    return false
}
...