2012-08-10 2 views
2

PDF 리더로 내 PDF 파일을 열려고하는데, 어떻게하면이 일을 할 수 있는지, 많은 답변을 찾을 수 있습니다. 그러나 모든 답변에서 그 파일을 "SD 카드" .개인 정보를 공개 위치에 저장

파일을 SD 카드에 저장하는 것이 좋습니다.하지만 휴대 전화에 SD 카드를 설치하지 않은 경우 문제가 발생합니다. 현재 많은 전화가 삼성 전자 갤럭시 S3, HTC 한 V, 삼성 갤럭시 노트, 소니 Xperia S 및 많은 전화 예 : 대형 inbuilt 메모리 있습니다.

내 질문은입니다.이 휴대 전화에는 이미 내장 메모리가 있으므로 사용자가 SD 카드를 추가 할 필요가 없습니다 (사용자에 따라 다름). 이 경우 다른 위치에서 액세스 할 수있는 위치는 공개 위치 (SD 카드)입니다.

내 문제를 검색 할 때이 link은 Android 플랫폼에서 제공하는 애플리케이션 데이터 저장 위치를 ​​알려줍니다.

  1. 공유 환경 설정
  2. 외부 저장
  3. SQLite 데이터베이스
  4. 네트워크 연결이

안드로이드가 제공하는

  • 내부 저장 :

    안드로이드 플랫폼은 응용 프로그램 데이터를 저장하는 옵션을 제공합니다 홍보하는 방법 데이터를 다른 응용 프로그램 (콘텐츠 공급자 포함)에 전송하십시오.

    콘텐츠 공급자에 대해 읽었지만 작동 방식을 이해하지 못했습니다.

    자습서가 작동하는 방법을 보여주는 경우 자습서 링크를 제공하거나 다른 방법으로 수행 할 수있는 방법을 알려주십시오.

    도움이 될 것입니다. 감사!

  • +0

    내가 무엇을 요구하는지 잘 모르겠다 - 앱이 PDF 리더이고 액세스하는 방법을 궁금하게 생각합니까? PDF? – brianestey

    +0

    @brianestey 아니요 내 앱은 간단한 앱입니다. 그것은 자산 폴더에 PDF 파일을 포함하고 내 안드로이드 전화에 이미 설치되어있는 PDF 리더로 파일을 열고 싶습니다. – Pari

    +0

    @brianestey 만약 SD 카드에 pdf 파일을 저장하고 그것을 열면 쉽게 열리지 만, 만약 내 SD 카드를 언 마운트하고 나서 "파일 경로가 유효하지 않습니다"라는 오류가 발생하면 열립니다. 이제는 다른 응용 프로그램에서 액세스 할 수있는 해당 위치에 파일을 저장하려고합니다. 물론 SD 카드를 마운트 해제 할 때도 마찬가지입니다. – Pari

    답변

    0

    당신은 .. 대신 SDCard에의 절약을 위해

    1. 공유 설정을 다음과 같은 기술을 사용할 수 예 : - 된 SharedPreferences demo_sp = getApplicationContext() .getSharedPreferences (MODE_PRIVATE을 "데모"); 문자열 dem = demo_sp.getString ("DEMO", "demo"); 당신이 sqlite가 아무것도 저장하면
    2. 내부 저장
    3. SQLite 데이터베이스, 그것은 휴대 전화의 .DB 파일이 생성됩니다, u는 documentation에 따르면 그
    1

    에 액세스 할 수 있습니다 그것은 나타납니다 유일한 진짜 옵션 PDF를 공용 저장소에 보관해야합니다. 외부 저장소에 PDF를 저장해야합니다. 외부 저장소를 사용할 수 있는지 항상 확인하고, 그렇다면이 옵션을 사용하여 PDF를 공유 할 수 있습니다.

    시도해 볼 수있는 또 다른 방법은 (지금 시도해 보지 않았습니다. 지금 생각해보십시오) PDF를 Temp 파일에 쓰고 그 임시 파일의 위치를 ​​공유하는 것입니다.

    File.createTempFile() 임시 파일을 만듭니다.임시 파일이 저장된 위치를 확인한 다음 다른 위치에서 액세스 할 수 있는지 테스트 해 볼 수 있습니다.

    +0

    모르겠다. 작동한다면,하지만 나는 마지막 개념에 대해 정말 좋아한다! +1 –

    0

    내 응용 프로그램에서는 사용 가능한 경우에만 sdCard를 사용하고 그렇지 않은 경우에는 전화 메모리를 사용합니다.

    전화 메모리 위해 당신은 파일 객체과 같이 얻을 수 있습니다 :

    File file=new File(context.getFilesDir(), FILENAME); 
    

    물론 상황은 컨텍스트 개체입니다. 그런 다음이 파일을 읽기/쓰기 작업이있는 일반 Java 파일처럼 사용할 수 있습니다. 먼저 당신이를 선언해야 SD 카드 저장을위한

    매니페스트 : 외부 저장 장치를 사용할 수있는 경우

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    

    당신은 확인해야합니다 :

    public static boolean hasSdCard(){ 
        return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 
    } 
    

    는 그런 다음 파일 객체를 얻을 수

    File file = new File(Environment.getExternalStorageDirectory() + DIRECTORY + FILENAME); 
    
    관련 문제