2011-09-24 7 views
2

特定のファイル名でSDカードに画像を書き込むためにAndroidのMediaStoreを取得しようとしています。Android MediaStoreはファイル名を設定しません

PictureCallback myPictureCallback_JPG = new PictureCallback(){ 

    public void onPictureTaken(byte[] arg0, Camera arg1) { 
     Bitmap bitmapPicture = BitmapFactory.decodeByteArray(arg0, 0, arg0.length); 

     int year = Calendar.getInstance().getTime().getYear(); 
     int month = Calendar.getInstance().getTime().getMonth(); 
     int day = Calendar.getInstance().getTime().getDay(); 

     int hour = Calendar.getInstance().getTime().getHours(); 
     int minute = Calendar.getInstance().getTime().getMinutes(); 
     int seconds = Calendar.getInstance().getTime().getSeconds(); 

     String imgName = "IMG_" + Integer.toString(year) + Integer.toString(month) +Integer.toString(day) + "_" + Integer.toString(hour) + Integer.toString(minute) 
          + Integer.toString(seconds) + ".jpg";   

     MediaStore.Images.Media.insertImage(getContentResolver(), bitmapPicture, imgName, imgName);  

     camera.startPreview(); 
     inPreview=true; 
    }}; 

それが正常に画像を保存しますが、ファイル名はからの時間のように見える:それは私の関連するコードであるファイルを書きませんが、ここで

MediaStore.Images.Media.insertImage(cr, source, title, description) 

で渡されるタイトルパラメータを使用していませんUnixエポック(すなわち13168297 ... 16.jpg)

答えて

0

私はメディアストアが動作するように取得していないが、私は仕事を得るためにFileクラスとのFileOutputStreamを使用しました:

 ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
     bitmapPicture.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 

     File imageDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + "DropPic 64"); 

     imageDirectory.mkdirs(); 

     File f = new File(Environment.getExternalStorageDirectory() 
           + File.separator + "DropPic 64" + File.separator + currentPicture.fileName); 
     try { 
      f.createNewFile(); 
      FileOutputStream fo = new FileOutputStream(f); 
       fo.write(arg0); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
関連する問題