Now that ImageCaptureCore framework is supported on iOS 13+, I was trying to write an application for browsing media files on devices connected via USB. The external device is connected to the iPhone via the Lightning to USB 3 Camera Adapter.
The iOS application I'm writing is based on SimpleCameraBrowser
What I'm seeing is that although the camera is found and successfully open a session, when receiving the callback deviceDidBecomeReady, the property mediaFiles is an empty array and never receive the call deviceDidBecomeReadyWithCompleteContentCatalog.
Is ImageCaptureCore framework supposed to work on iOS? Does it work only on iPads and not on iPhones?
The iOS application I'm writing is based on SimpleCameraBrowser
Code Block language @interface AppDelegate () <ICDeviceBrowserDelegate, ICDeviceDelegate> @property (nonatomic, strong) ICDeviceBrowser *deviceBrowser; @property (nonatomic, strong) ICCameraDevice *camera; @end @implementation AppDelegate - (void)deviceBrowser:(nonnull ICDeviceBrowser *)browser didAddDevice:(nonnull ICDevice *)device moreComing:(BOOL)moreComing { NSLog( @"deviceBrowser:didAddDevice:moreComing: \n%@\n", device ); // if (device.type & ICDeviceTypeCamera) { device.delegate = self; self.camera = (ICCameraDevice *)device; self.camera.delegate = self; [self.camera requestOpenSession]; } } - (void)device:(nonnull ICDevice *)device didOpenSessionWithError:(NSError * _Nullable)error { NSLog( @"device:didOpenSessionWithError:error: \n%@\n", error ); } - (void)deviceDidBecomeReady:(ICDevice*)device { ICCameraDevice *camera = (ICCameraDevice *)device; NSLog(@"%@, %@", device, camera.mediaFiles); } - (void)deviceDidBecomeReadyWithCompleteContentCatalog:(ICCameraDevice*) device { NSLog(@"deviceDidBecomeReadyWithCompleteContentCatalog: %@", device.mediaFiles); } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. self.deviceBrowser = [[ICDeviceBrowser alloc] init]; self.deviceBrowser.delegate = self; [self.deviceBrowser start]; return YES; }
What I'm seeing is that although the camera is found and successfully open a session, when receiving the callback deviceDidBecomeReady, the property mediaFiles is an empty array and never receive the call deviceDidBecomeReadyWithCompleteContentCatalog.
Is ImageCaptureCore framework supposed to work on iOS? Does it work only on iPads and not on iPhones?