2014-09-15 11 views
1

Airdrop을 사용하여 내 응용 프로그램에서 하나의 iPad에서 다른 iPad로 사용되는 sqlite 데이터베이스 (단일 파일 .sqlite)를 보내거나받을 수 있습니까? 그렇다면 수신 장치에서 파일을받는 방법은 무엇입니까?Airdrop로 sqlite 데이터베이스를 보내고받을 수 있습니까

그렇지 않은 경우 앱에서 다른 기기의 동일한 앱으로 파일을 전송하는 가장 좋은 방법은 무엇입니까? 파일은 항상 sqlite 데이터베이스가됩니다.

답변

5

누군가가이 문제에 걸리면 대답은 '예'입니다. 할 수 있습니다. 내가 취한 접근법에 대해 설명해 드리겠습니다.

먼저, 별도의 코어 데이터 스택을 사용하여 내보낼 sqlite 파일을 만들었습니다. (필자의 경우 일부 필터링 등), 송신 장치의 sqlite를 우리 고유의 확장자로 변경했습니다. 앱.

https://developer.apple.com/library/ios/qa/qa1587/_index.html

당신에게 :이 앱에 속하는 파일로 인식되도록

NSURL *url = [coreDataExporter urlToShare]; 
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObject:url] applicationActivities:nil]; 

// Exclude all activities except AirDrop. 
NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook, 
           UIActivityTypePostToWeibo, 
           UIActivityTypeMessage, UIActivityTypeMail, 
           UIActivityTypePrint, UIActivityTypeCopyToPasteboard, 
           UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, 
           UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, 
           UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo]; 
controller.excludedActivityTypes = excludedActivities; 

// Present the controller 
[self presentViewController:controller animated:YES completion:nil]; 

를 사용하여 고유 한 확장을 설정하려면이 링크 : 그런 다음, 다음 코드는 전송을 시작하는 데 사용됩니다 거의 그 링크를 그대로 사용하지만 자신의 설명, 식별자 및 확장을 대체하십시오. 인터넷을 둘러 보면서 찾을 수있는 것보다 훨씬 쉽습니다. 5 분이면 돼.

전송 장치에서 전송이 완료되면 해당 파일은 문서 /받은 파일 함 디렉터리에 읽기 전용 파일로 저장됩니다.

  • (무효) applicationDidBecomeActive : (UIApplication *) 응용 프로그램

당신이 수신 장치에 필요할 때마다 파일을 복사 할 수있는 앱 위임은 다음과 같은 방법을 구현할 수 있습니다. 파일을 수신 장치에서 수신하면 처리를 위해 앱을 시작한다는 것을 알게되고 DidBecomeActive가 실행되어 필요에 따라 처리 할 수있게됩니다.

또한

, 당신은 사용할 수 있습니다

  • (BOOL) 응용 프로그램 : (UIApplication *) 응용 프로그램의 OpenURL : (NSURL *) URL의 sourceApplication : (있는 NSString *) sourceApplication 주석 (ID) 주석

앱 위임자가 알림을 게시하여 앱이 이미 활성화되어있어 (DidBecomeActive가 실행되지 않는 경우) 앱이 알림을 수신하여 적절한 조치를 취할 수 있도록합니다.

이 문제를 파악하는 데 꽤 오랜 시간이 걸렸습니다. 잘 요약하면이 요약을 여기에 게시하면 누군가가 길을 내리는 데 도움이됩니다.

1

OP가 찾고있는 것과 관련된 해결책 : this Apple's sample code은 UTI를 해당 데이터에 첨부하여 AirDrop을 통해 맞춤 클래스 데이터를 공유하는 방법을 보여줍니다.