내 안드로이드 응용 프로그램 내에서 파일 시스템에 저장 한 pdf 파일을 여는 데 문제가 있습니다.안드로이드 응용 프로그램 내에서 PDF를 열 수 없습니다.
서버에서 바이트 배열을 serialize하는 나머지 호출이 있는데,이 바이트 배열을 내 pdf 파일로 저장합니다. 이 부분은 잘 작동하고 pdf가 저장된 디렉토리로 이동하여 모든 o.k 파일을 열 수 있습니다.
그러나 내 전화 GS4 (POLARIS Office View 5) 또는 Adobe Reader의 기본 PDF 뷰어를 통해 내 응용 프로그램 내에서 PDF를 열려고 할 때 두 응용 프로그램 모두 파일을 열 수 없습니다. POLARIS가 "이 문서를 열 수 없습니다."라는 메시지를 표시합니다. Adobe가 시작되었지만 위로 이동합니다. 문서 경로가 유효하지 않습니다.
내 파일을 퍼미션하기위한 코드입니다.
private String createFile(AttachmentDTO dto) {
String fileExtention = getMimeType(dto);
File file = new File(context.getExternalFilesDir(Constants.BASE_EXTERNAL_DIRECTORY_ATTACHMENTS), dto.getId() + fileExtention);
FileOutputStream fos;
try {
Files.write(dto.getAttachment(), file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return file.getPath();
}
내 파일의 전체 경로는
/storage/emulated/0/Android/data/com.rsd.childcare.mobile.client/files/attachments/2.pdf
이제 내 가정은 어느 앱도 권한 때문에 pdf를 열 수 없다는 것입니다. 그러나 나는 내 매니페스트
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
WRITE_EXTERNAL_STORAGE를 선언 할 때 난 당신이뿐만 아니라 READ 권한을 얻을 알고 있지만, 4.2 그들이이 그래서 내가 그것을 시도 줄 알았는데 추가했습니다,하지만 여전히 기쁨 내에서 다음 있습니다.
다른 생각은 "getExternalFilesDir"을 호출하여 이러한 파일에 대한 타사 응용 프로그램에 대한 읽기 권한을 부여했습니다.
아래의 코드는 사람이 내가 뭔가를 표시
감사
연결을 사용하여 절대 File 객체를 생성하지 마십시오. 적절한'File' 생성자를 사용하십시오. 나는 또한'FLAG_ACTIVITY_CLEAR_TOP'을 제거 할 것입니다. 또한 해당 앱이 이미 관련 권한을 보유하고 있지만 * other * 앱은 권한이 필요하다는 것을 명심하십시오. 그 외에도 파일 관리자를 설치하고 파일 관리자에서 PDF를 열어보십시오. 실패 할 경우 파일 자체가 손상된 것 같습니다. 귀하의 코멘트에 – CommonsWare
주셔서 감사합니다, 연결을 제거했습니다. FLAG_ACTIVITY_CLEAR_TOP을 (를) 제거했습니다. 나는 파일 관리자를 통해 파일에 접근 할 수 있으며, pdf 뷰어로 모든 파일을 성공적으로 열 수 있습니다. 이것은 flummoxing입니다 – ngatirauks