2017-04-11 1 views
1

프로그래밍 방식으로 CSV를 작성했습니다. 사용자가 기기에 설치 한 앱에서 CSV를 열 수있게하고 싶습니다. 나는 위의 코드를 실행하면프로그래밍 방식으로 Android에서 CSV 파일 열기

File file = new File(Environment.getExternalStorageDirectory(), "My_App_Dir/" + fileName); 
Intent csvIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT); 
csvIntent.addCategory(Intent.CATEGORY_OPENABLE); 
csvIntent.setDataAndType(FileProvider.getUriForFile(getActivity(), getActivity().getApplicationContext().getPackageName() + ".provider", finalFile), "text/csv"); 
csvIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
csvIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
getActivity().startActivity(csvIntent); 

, 내가 얻을 모든 사용자를 허용 (파일이 표시되지 않습니다) 최근의 파일 탐색기가 아닌 응용 프로그램 선택 화면입니다 :

나는 다음이 파일을 여는 데 사용할 응용 프로그램을 선택하십시오.

내 장치 파일 탐색기 앱 (견고한 탐색기)으로 이동하여 앱을 선택하면 CSV (Google 문서 도구 또는 Excel)를 지원할 수있는 앱 목록이 제공됩니다. 어떤 도움

덕분에 당신은

답변

1

사용 ACTION_VIEW를 제공 할 수 있습니다. ACTION_OPEN_DOCUMENT은 데스크탑 OS 또는 웹 브라우저 "파일 열기"대화 상자와 동일합니다.

+0

감사합니다. 시도해 보았지만 ActivityNotFoundException을 발생시킵니다. 'android.content.ActivityNotFoundException : 의도를 처리 할 활동이 없습니다. {act = android.intent.action.VIEW cat = [android.intent.category.OPENABLE] dat = content : //com.my_company.my_app.provider/external_files/ MyAfterDir/11042017_233342_resultset.csv typ = text/csv flg = 0x10000001}' – Boardy

+0

아, 당신이 한 일을 끝내고 정렬했는데,'addCategory (Intent.CATEGORY_OPENABLE)'을 제거해야했습니다. 도와 줘서 고마워. – Boardy

+0

@Boardy : 오, 그래, 맞아, 미안해. 'ACTION_VIEW'는 보통 기본 카테고리에서만 사용되며'startActivity()'를 호출 할 때 기본적으로 추가됩니다. – CommonsWare

관련 문제