2016-07-09 3 views
1

일부 정보를 수집하고 사용자가 Android Intent 프레임 워크를 사용하여 정보를 공유 할 수있는 앱이 있습니다.Android : 파일/첨부 파일로 간단한 텍스트 공유

지금까지는 putExtra(Intent.EXTRA_TEXT, report) (reportString)을 사용하여 보고서를 일반 텍스트로 공유합니다.

그러나 보고서를 파일로 공유하여 본문보다는 전자 메일 첨부 파일로 공유하기 쉽도록하고 싶습니다.

그 목적으로 실제 파일을 만들어야합니까? 그렇게한다면 send binary content에서 설명한 것처럼 다른 앱에서 읽을 수있는 위치에 있어야합니다.

나는 ByteArrayOutputStream을 제공 할 수있는 API를 기대하고 있었기 때문에 뭔가를 놓친 것 같습니다. 특히, 나는 공유 응용 프로그램이 모든 저장소에 대한 권한을 갖도록 강요하지 않을 것입니다.

답변

1

FileProvider을 사용하면 공개적으로 액세스 할 수없는 파일을 공유 할 수 있습니다. 간단한 자습서는 Setting Up File Sharing을 확인하십시오.

전자 메일 첨부 파일로 텍스트를 보내는 것은 다소 까다 롭습니다. 데이터가 EXTRA_TEXT에 제공됨을 의미하기 때문에 유형으로 text/plain을 사용할 수 없습니다. 그러나이 여분의 텍스트는 첨부 파일이 아니라 이메일 본문에 저장됩니다.

Uri fileUri = FileProvider.getUriForFile(context, "org.example.provider.authority", reportFile); 

Intent shareIntent = new Intent(Intent.ACTION_SEND); 
shareIntent.setType("*/*"); 
shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri); 

startActivity(Intent.createChooser(shareIntent, null)); 

또한 확인하십시오 FileProvider.getType() 반환 보고서 파일에 대한 text/plain을해야한다 :

는 어떤 일을해야하면 다음과 같다. 이것을 달성하는 가장 쉬운 방법은 .txt을 파일 확장자로 사용하고 FileProvider이 자동으로 올바른 작업을 수행하는 것입니다.

관련 문제