안드로이드 다른 앱에서 파일 받기 (공유, 다른 앱 열기)
iOS 앱을 개발하면서 다른 앱의 파일을 공유받을 수 있도록 설정을 할 수 있다.
안드로이드에서도 동일하게 다른 앱으로 부터 파일을 공유받고 우리 앱으로 가져와서 오픈하거나 처리할 수 있다.
*공유 파일 받기*
다른 앱에서 공유 받은 파일을 받으려면 아래 링크를 참조하면 된다.
https://developer.android.com/training/sharing/receive?hl=ko
*다른 앱 오픈 받기*
이 경우 인텐트 필터를 아래와 같이 설정을 해주면 된다.
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/octet-stream" android:scheme="content"/>
*받은 데이터 처리*
공유의 경우는 위 링크를 참조해서 코드에서 Action 으로 ACTION_SEND 또는 ACTION_SEND_MULTIPLE 인지 구분해서 처리하면 된다.
다른 앱에서 열기를 통해 받은 경우는
val data: Uri? = intent.data
if (data != null) {
try {
importFileData(data)
} catch (e: Exception) {}
}
위 코드 처럼 바로 data 로 Uri 를 받을 수 있다.
(공유를 통해서 받는 경우는 data 는 null 이다.)