2014-12-06 2 views
0

공개 이미지를 만들 수 없습니다. 공개 사진 디렉토리에이 파일을 만들려고했는데 파일이 만들어지면 파일 탐색기에서 볼 수 있습니다. 그러나 사진은 기본 앨범 앱에서 가져 오지도 않으며 휴대 전화를 컴퓨터에 연결하여 볼 수도 없습니다. 그래서 나는 그 그림이 여전히 사적이라고 생각한다. 내가 필요한 것은 그림을 컴퓨터에 복사해야한다는 것입니다. 다음은 코드 스 니펫입니다. 사전에응용 프로그램에서 만든 파일을 컴퓨터에서 읽을 수있게 만드는 방법은 무엇입니까?

  String photoPath = "sdcard/test.jpg"; 
      Bitmap originalBitmap = BitmapFactory.decodeFile(photoPath); 
      squareBitmap = Bitmap.createBitmap(originalBitmap,0,0,1000,1000); 
      dvBitmap = squareBitmap.createScaledBitmap(squareBitmap,200,200,false); 

      //saving bitmap to JPEG in sd card 
      ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
      dvBitmap.compress(Bitmap.CompressFormat.JPEG,100,bytes); 
      File path = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES); 

      File f = new File(path,"output.jpg"); 
      f.setReadable(true); 
      try { 
       Log.v(LOG_TAG,"CREATING FILE"); 
       f.createNewFile(); 

       FileOutputStream fo = new FileOutputStream(f); 
       fo.write(bytes.toByteArray()); 
       fo.close(); 
       Log.v(LOG_TAG,"FILE CREATED"); 
      } catch (IOException e) { 
       Log.v(LOG_TAG,"CANNOT CREATE FILE"); 
       e.printStackTrace(); 
      } 

감사

편집 : 테스트했습니다 전화는 소니 엑스 페리아 S.가 지금은 삼성과 같은 코드가 잘 작동 다른 전화에서 테스트했다. 두 가지 모두 내부 저장소에서 테스트됩니다.

답변

0

그래서 MediaScannerConnection에서 문제가 발생했습니다. 파일을 만든 후에 다음 코드를 추가하면 트릭을 만들었습니다.

MediaScannerConnection.scanFile(getApplicationContext(), 
         new String[]{f.toString()}, null,null); 
관련 문제