2012-10-24 5 views
2

내 응용 프로그램에는 장치 갤러리에서 이미지를 선택한 다음 더 작은 버전의 이미지를 SD 카드의 폴더에 저장하는 작업이 포함됩니다. 내가 겪고있는 문제는 일부 사용자가 이미지가 폴더에 저장되지 않는다고보고한다는 것입니다. 그러나 대부분의 사용자는 앱이 정상적으로 작동하고 있으며 다른 일부 사용자에게 무슨 일이 일어나는지 알 수 없다고보고합니다. Huawei T-Mobile myTouch, Samsung GT-S5830i, HTC Evo 4G 및 Samsung Galaxy S2와 같이 문제가 발생하는 것으로보고 된 장치는 다음과 같습니다. 나 자신도 Motorola Atrix 2를 가지고 있는데 그런 문제는 없었다.모든 장치에서 SD 카드에 이미지 저장

내 매니페스트에 태그가 이미 있습니다. 내 코드의 대부분은 다른 stackoverflow 솔루션에서 갤러리에서 이미지를 가져온 다음 SD 카드에 저장합니다. SD 카드에 이미지를 저장

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) 
    { 
     switch(requestCode) 
     { 
      case SELECT_IMAGE: 
       image_dir = getPath(data.getData()); 

       Bitmap myBitmap = decodeFile(new File(image_dir)); 

       resizedBitmap = Bitmap.createScaledBitmap(myBitmap, (int)(myBitmap.getWidth()/2), (int)(myBitmap.getHeight()/2), true); 
       break; 
     } 
    } 
    else 
    { 
     image_dir = "None"; 
    } 
} 

:

갤러리에서 이미지를 얻기

OutputStream fOut = null; 
File file = new File(Environment.getExternalStorageDirectory()+"/MyApp",imgname+".jpg"); 
fOut = new FileOutputStream(file); 

resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut); 
fOut.flush(); 
fOut.close(); 

그리고이 모든 대부분의 사용자에게 잘 밖으로 작동하는 것 같다,하지만 일부 사용자 이미지 ISN에 대한 구원 받고 있지 않아. 권한 문제 또는 코드 자체에서 간과 한 일종의 설정 일 수 있습니까? 어떤 도움을 주셔서 감사합니다. 먼저 Environment.getExternalStorageState()을 확인해야하므로 this에 따라

답변

0

,

This directory may not currently be accessible if it has been mounted by the user on their computer, has been removed from the device, or some other problem has happened 

Environment.getExternalStorageDirectory()는 널 (null)을 반환합니다.

0

이러한 장치는 널리 사용되는 외부 저장소 규칙/mnt/sdcard /를 사용하지 않을 수도 있습니다. 다음은 Samsung Galaxy S2HTC Evo 4G에 대한 몇 가지 힌트입니다. 아마 문제는 SD가 마운트되어 있지 않다는 것이 아니라 자레드 장 (Jaredzhang)의 제안에 따라 확실히 점검해야합니다. 또한 가장 가능성있는 오류를 듣고보고하는 방법을 제안합니다. 예를 들어 SD가 마운트되어 있는지, 대상 폴더가 있는지 등을 확인하는 것이 좋습니다. 말할 필요도없이 그 장치 중 하나에 손을 대고 확인하는 것이 가장 좋습니다 너 자신을 위해서. 아마도 온라인에서 해당 장치에 대한 getExternalStorageDirectory() 결과를 검색 할 수도 있습니다.

관련 문제