2014-02-19 2 views
7

UIActivityViewController을 사용하여 오디오 파일 (.aac)을 공유하려고합니다. 그것은 샌드 박스 문서 디렉토리에 작성한 임시 파일입니다.오디오 파일에 NSURL이있는 UIActivityViewController는 에어 드롭 만 표시합니다.

initWithActivityItem: 방법에서 NSURL을 전달합니다.

[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:^{ 
... 
}]; 

공유 버튼을 누르면 몇 초가 걸리며 활동 표가 유일한 옵션으로 에어 드롭으로 표시됩니다.

전자 메일이나 iMessage와 같은 다른 옵션을 표시하려면 어떻게합니까? 임시 파일을 다시 삭제할 수 있도록 "공유"가 완료된 시점을 확인할 수 있도록 콜백 메서드가 있습니까?

먼저 오디오 파일을 디스크에 쓰지 않고도 오디오 파일을 추가 할 수있는 방법이 있습니까? 어떻게 든 그냥 NSData 객체를 전달할 수 없습니까?

답변

4

실제 파일을 공유하려는 경우 UIDocumentInteractionController을 사용해야하며 전체 파일을 공유하도록 설계되었습니다. UIActivityViewController은 텍스트와 어쩌면 이미지를 의미합니다.

다른 앱을 열지 말고 파일에 메시지를 보내려면 UIDocumentInteractionController에 대해 맞춤 UIActivity을 만들고 메일에 대해 또 다른 메일에 대해 맞춤 설정을 고려해보십시오. 참조 mfmailcomposeviewcontrollerMFMessageComposeViewController

참조 (애플 개발자) : https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html