Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIActivityViewController with NSURL to audio file only shows airdrop

I am trying to use a UIActivityViewController to share an audio file (.aac). It is a temporary file that I have written to the sandboxed documents directory.

I pass a NSURL in the initWithActivityItem: method.

[audioData writeToFile:[urlToAudioFile path] options:NSDataWritingFileProtectionNone error:&error];

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[urlToAudioFile] applicationActivities:nil];
    [self.view.window.rootViewController presentViewController:activity animated:YES completion:^{
...
}];

When I press the share button it takes a few seconds and the activity sheet pops up with the only option being Airdrop.

How can I get other options like email or iMessage to show up? Is there a call back method so that I can determine when the "sharing" is finished, so that I can delete the temporary file again?

Is there a way for me to add the audio file without having to write it to disk first? Can't I somehow just pass the NSData object?

like image 635
Joseph Avatar asked Feb 19 '14 12:02

Joseph


1 Answers

If you are trying to share the actual file, then you need to use UIDocumentInteractionController, it is designed for sharing entire files. UIActivityViewController is meant for text and maybe an image.

If you need to message your file rather than just open it another app, then consider making a custom UIActivity for UIDocumentInteractionController and another for Messages and Another for Mail. See mfmailcomposeviewcontroller and MFMessageComposeViewController

See(Apple Developer): https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html

like image 130
virindh Avatar answered Oct 19 '22 18:10

virindh