My app has iTunes file sharing turned on, and when user add a file in iTunes, it should be able to detect.
The following function from Application Delegate is used to be called but not any more:
- (void)applicationDidBecomeActive:(UIApplication *)application
Is there an alternative solution?
There is a solution: GCD. GCD allows you to create a dispatch_source_t
that watches for vnode changes, like a write in a directory, and then notifies you about it. The basic is: Use the open(path, O_EVTONLY)
syscall to obtain a file descriptor to the directory, then call dispatch_source_create()
and pass DISPATCH_SOURCE_TYPE_VNODE
as type and DISPATCH_VNODE_WRITE
as mask. Set the event handler using dispatch_source_set_event_handler
and do whatever you need to do when a file is written in the directory, additionally you also want to set a cancellation handler that calls close()
to close the file descriptor. Finally, call dispatch_resume()
to start monitoring.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With