이 프로그램은 정말 간단하다고 생각했지만, 전체 앱의 나머지 부분보다 많은 작업을하고 있습니다.카드의 폴더 열기
단지 버튼이 내 앱의 "다운로드 한 파일"폴더를 열길 원합니다. 그게 다야. 파일 선택기가 없으며 복잡하지 않습니다. 모든 버튼은 기본 앱이있는 폴더를 열거 나 기본값이없는 경우 앱 선택기를 열면됩니다.
내가 StackOverflow에서 본 다른 해결책을 시도했지만 아무것도 작동하지 않는 것 같습니다.
예 1 :
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/MyDownloadedFiles/");
intent.setDataAndType(uri, "text/plain");
startActivity(Intent.createChooser(intent, getString(R.string.action_downloaded)));
내 안드로이드 4.4는, 이것이 킷캣 파일 선택기를 열고, 그리고 내가 원하는 폴더에조차 열리지 않습니다 ... 그것은 카드 루트에 디폴트 것으로 보인다. 그러나 폴더가 존재하고 의도에 주어진 경로가 실제로 올바른 것으로 확신합니다.
예 2 :
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + "/MyDownloadedFiles/");
intent.setDataAndType(uri, "text/plain");
startActivity(Intent.createChooser(intent, getString(R.string.action_downloaded)));
이 사람은 말을 팝업으로 일부 빈 활동을 엽니 다 : "파일 내용 가져올 때 오류가 발생했습니다 : MyDownloadedFiles을".
내 앱에 콘텐츠를 삽입하는 폴더의 바로 가기가 생기게하려면 어떻게해야합니까?
그래서, 그 변환 (정말로 이상한 소리)과''*/* ''의 결합이 핵심입니까? –
여기서 중요한 점은 File 객체가 "file : //"또는 무엇이든 앞에 붙일 수 있다는 것입니다. "*/*" 유형에 "Uri.parse()"및 "*/*"를 사용하면 작동하지 않으므로 위의 예 1과 동일하게 적용됩니다. – Nuno
이상한 점은 솔루션입니다. 내게 당신이 "별표 (*)"를 쓰는 것을 계속하지 않는다면 ... 어쨌든, 킷캣이 그렇게하도록 요구한다면,'Environment.getExternalStorageDirectory()'가 이미 얻는다는 것을 명심한다면 코드를 조금 단순화 할 수있다. 당신은 File 객체 (파일에서 String, File to Uri : P로가는 신화를 만들지 않기 때문에 더 간단하게 유지하십시오.) 축하합니다! –