Notice
Recent Posts
Recent Comments
Link
투케이2K
780. (Android/Java) 안드로이드 Intent.createChooser 사용해 파일 공유 수행 시 첨부 파일 추가 방법 - Intent.EXTRA_STREAM 본문
Android
780. (Android/Java) 안드로이드 Intent.createChooser 사용해 파일 공유 수행 시 첨부 파일 추가 방법 - Intent.EXTRA_STREAM
투케이2K 2024. 4. 24. 19:48[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// ---------------------------------------------------------------
// [로직 처리 실시]
// ---------------------------------------------------------------
try {
/**
* -----------------------------------------------------
* 1. 사전 : AndroidManifest.xml 파일에 provider 지정
*
* <provider
* android:name="androidx.core.content.FileProvider"
* android:authorities="${applicationId}.provider"
* android:exported="false"
* android:grantUriPermissions="true">
* <meta-data
* android:name="android.support.FILE_PROVIDER_PATHS"
* android:resource="@xml/provider_paths" />
* </provider>
* -----------------------------------------------------
* 2. 사전 : provider.xml 파일에 path 경로 설정
*
* <?xml version="1.0" encoding="utf-8"?>
* <paths xmlns:android="http://schemas.android.com/apk/res/android">
* <files-path name="files" path="."/>
* <external-files-path name="external_files_path" path="." />
* <external-path name="external_files" path="."/>
* </paths>
* -----------------------------------------------------
* */
// -----------------------------------------------------
// TODO [파일 경로] : data/data/com.example.javaproject/files/test.txt
// -----------------------------------------------------
// TODO [앱 내부 캐시 저장소] : [권한 없이도 읽기 , 쓰기 가능]
// -----------------------------------------------------
File file = new File(getFilesDir(), "test.txt");
// -----------------------------------------------------
// [URL 지정]
// -----------------------------------------------------
Uri fileUri = FileProvider.getUriForFile(A_Intro.this, getApplicationContext().getPackageName() + ".provider", file);
// -----------------------------------------------------
// [Intent 지정]
// -----------------------------------------------------
Intent intentShareFile = new Intent(Intent.ACTION_SEND);
intentShareFile.setType("text/plain"); // TODO [.txt 파일 타입]
intentShareFile.putExtra(Intent.EXTRA_STREAM, fileUri); // TODO [파일 주소]
intentShareFile.putExtra(Intent.EXTRA_SUBJECT, "My subject");
// intentShareFile.putExtra(Intent.EXTRA_TEXT, "My text");
startActivity(Intent.createChooser(intentShareFile, "Choose")); // TODO [파일 공유]
}
catch (Exception e){
e.printStackTrace();
}
반응형
'Android' 카테고리의 다른 글
Comments