iOS 14 Beta проверьте права доступа PHAsset для уровня доступа .limited

в бета-версии iOS 14 есть способ проверить, есть ли у приложения разрешения на загрузку PHAsset изображения, прежде чем пытаться загрузить его с помощью PHImageManager.requestImage?. Это для PHAuthorizationStatus.limited - когда я извлекаю все ресурсы в PHAssetCollection, оно также возвращает те, у которых нет разрешений. Я вижу объект ошибки только тогда, когда пытаюсь загрузить само изображение с помощью PHImageManager.requestImage в возвращенном информационном объекте.

РЕДАКТИРОВАТЬ:

Оказывается, это проблема только на симуляторе. Когда я запускал приложение на реальном устройстве с бета-версией iOS 14, PHAssetCollection fetch возвращал только те PHAssets, к которым пользователь предоставил доступ.


person kzamanov    schedule 06.08.2020    source источник
comment
Я также столкнулся с той же проблемой, открыл вопрос на форуме разработчиков Apple developer.apple.com/forums/ thread / 657130   -  person Rotem    schedule 12.08.2020
comment
@kzamanov спасибо за редактирование. У меня тоже работает на реальном устройстве.   -  person Klinki    schedule 20.08.2020
comment
Спасибо, что разместили следующий комментарий.   -  person Drew    schedule 29.08.2020
comment
Не могу отблагодарить вас за комментарий редактирования.   -  person aledap    schedule 23.09.2020
comment
Большое спасибо за раздел редактирования.   -  person Roman Shinyavski    schedule 12.10.2020


Ответы (2)


Вот что я тестировал на реальном устройстве:

У вас может быть доступ ко всем smart albums (в форме PHAssetCollection), даже если вы находитесь в режиме Ограниченный доступ к фотографиям. Однако вы можете получить ресурсы из этих коллекций только в том случае, если пользователь явно выбрал их. Бессмысленно иметь коллекцию без доступных активов.

Вы НЕ МОЖЕТЕ получить доступ ни к одному user album в режиме Ограниченный доступ к фотографиям.

В симуляторе он ведет себя немного по-другому, поскольку вы можете получить доступ ко всем альбомам, независимо от того, является ли альбом пользователя или смарт-альбомом в режиме Ограниченный доступ к фотографиям. И вы можете извлекать ресурсы из этих коллекций без ограничений. Однако вы не можете получить какие-либо данные из этих ресурсов, если пользователь не выбрал их. Я выполнил операцию requestImage с активом, который я не выбрал во всплывающем окне, и завершился ошибкой с кодом ошибки домена: -1.

person Evan    schedule 18.11.2020
comment
Еще одна вещь, это сделано для того, чтобы у вас не было доступа ни к одному из пользовательских альбомов в режиме ограниченного доступа к фотографиям. Дополнительную информацию можно получить здесь, в 11:11. - person Evan; 18.11.2020

попробуйте добавить предикат с mediaType, затем получите результат

person Xi Zhang    schedule 12.11.2020