2011-10-02 1 views
1

나는 안드로이드 프로그래밍에 매우 익숙하며 나의 디플로마 학위 논문에 대한 나의 첫 번째 응용 프로그램을 작성했다. 이제 끝내 버렸지 만, 그물에 아무 데나 대답 할 수 없다는 것이 하나 남았습니다. 어쩌면 여기 누군가가 도울 수 있습니다.파일에 데이터를 쓰고 앱 외부에서 SD 카드없이 액세스하려면 어떻게해야합니까?

내 앱에서해야 할 일 중 하나는 이전 작업의 결과를 나중에 분석 할 수 있도록 자유롭게 액세스 할 수있는 파일로 작성하는 것입니다. 그래서 내가 지금까지 무엇을 가지고 내가 다음 코드를 사용하여 SD 카드에 파일을 쓸 수 있어요 점이다

String packageName = this.getClass().getPackage().getName(); 
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/Android/data/" + packageName + "/files/"; 
if (isExternalStorageAvailable() && isExternalStorageWritable()) 
{ 
    String filename = "_results.dat"; 

    boolean exists = (new File(path)).exists(); 
    if (!exists) 
    { 
     new File(path).mkdirs(); 
    } 
    // Open output stream 
    FileOutputStream fOut = new FileOutputStream(path + filename,true); 

    fOut.write("lalala".getBytes()); 
     etc. 
    } 

public static boolean isExternalStorageAvailable() 
{ 
    // Retrieving the external storage state 
    String state = Environment.getExternalStorageState(); 

    // Check if available 
    if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) 
    { 
     return true; 
    } 

    return false; 
} 


public static boolean isExternalStorageWritable() 
{  
    // Retrieving the external storage state 
    String state = Environment.getExternalStorageState(); 

    // Check if writable 
    if (Environment.MEDIA_MOUNTED.equals(state)) 
    { 
     return true; 
    } 

    return false; 

} 

그 파일 I 수 나중에 액세스, 복사, 무엇을. 내가 원하는 것처럼. 이제 실제 문제는 다음과 같습니다.

휴대 전화에 SD 카드가없는 경우이를 수행 할 수있는 방법이 있습니까? 또는 'app-memory'에만 쓸 수 있습니까? (내 필요를 충족시키지 못합니다)? 나는 앱을 배포 할 휴대폰에 아직 SD 카드가 없기 때문에 묻습니다. 그리고 장치를 '업그레이드'해야하는지 결정해야합니다.

+0

SD 카드 또는 기타 외부 저장 장치는 Android 휴대 전화에서 매우 일반적입니다. 내가 안드로이드 폰의 90 %가 외부 저장 장치를 가지고 있다는 것을 확실히 알지 못한다. –

답변

1

휴대 전화를 SD 카드로 업그레이드하지 않으려면 this 링크를 확인하십시오. 파일을 작성 (또는 동일한 이름의 파일을 대체) 을합니다

MODE_PRIVATE과 : 그것은 내부 저장 장치에 기록 된 파일이 다른 앱의 액세스 할 수없는,하지만 당신이 읽는다면, 당신은 다른 플래그를 설정할 수 있다고 응용 프로그램에 비공개로 설정하십시오. 사용 가능한 다른 모드는 MODE_APPEND, MODE_WORLD_READABLE 및 MODE_WORLD_WRITEABLE입니다.