2013-03-27 7 views
7

मैंने तस्वीर लेने और बाहरी भंडारण में इसे सहेजने के लिए कोड किया। यह मेरे टैबलेट पर एक एसडी कार्ड के साथ अच्छी तरह से काम करता है। हालांकि, मुझे अपने फोन के साथ कुछ परेशानी होती है जो एसडी कार्ड का समर्थन नहीं करती है। क्या कोई मुझे सहेजने के लिए कोड लिखने में मदद कर सकता है आंतरिक भंडारण। धन्यवाद!आंतरिक संग्रहण में कैप्चर की गई तस्वीर सहेजें?

((Button) findViewById(R.id.btnTaken)) 
      .setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
          takeImage();        
       } 
       }); 



protected void takeImage() { 
    Log.i(TAG,"onClick event"); 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
     String currentDateandTime = sdf.format(new Date()); 
     String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + 
           "/Image_" + currentDateandTime + ".jpg"; 


     mCamera.takePicture(fileName); 
     Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show(); 


} 
public void takePicture(final String fileName) { 
    Log.i(TAG, "Tacking picture"); 
    PictureCallback callback = new PictureCallback() { 

     private String mPictureFileName = fileName; 

     @Override 
     public void onPictureTaken(byte[] data, Camera camera) { 
      Log.i(TAG, "Saving a bitmap to file"); 
      Bitmap picture = BitmapFactory.decodeByteArray(data, 0, data.length); 
      try { 
       FileOutputStream out = new FileOutputStream(mPictureFileName); 
       picture.compress(Bitmap.CompressFormat.JPEG, 90, out); 
       picture.recycle(); 
       mCamera.startPreview(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 

    Camera.ShutterCallback shutter = new Camera.ShutterCallback() { 
     public void onShutter() { 
     Log.e(getClass().getSimpleName(), "SHUTTER CALLBACK"); 
     } 
     }; 
     Camera.PictureCallback raw = new Camera.PictureCallback() { 
      public void onPictureTaken(byte[] data, Camera c) { 
       Log.e(getClass().getSimpleName(), "PICTURE CALLBACK RAW: " + data); 
       mCamera.startPreview(); 
      } 
      }; 
    mCamera.takePicture(shutter, raw, callback) ; 



} 
+0

वही सवाल 30 मिनट पहले http://stackoverflow.com/ques कहा गया है जोड़ना चाहिए tions/15662258/how-to-save-a-bitmap-on-internal-storage –

+0

@ user2205173 यह जांचें http://connectcoders.blogspot.com/ –

उत्तर

-4

यह बाहरी फ़ाइल पथ name..You की बहुत Simple..Instead आंतरिक फ़ाइल पथ name..Which FileOutputStream out = new FileOutputStream(new File(getFilesDir()+File.separator+"MyFile.jpg")); ..Ple अच्छा

और

काम कर it..Its कोशिश है देना चाहिए है

एक और बात, आप अनुमति आंतरिक भंडारण के लिए एंड्रॉयड Manifest.xml में दाखिल

<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/> 
+2

यह अनुमति मौजूद नहीं है, और आउटपुटस्ट्रीम फ़ाइल नाम नहीं है । – clemp6r

+0

मैं आउटपुटस्ट्रीम के बारे में भी जाना जाता हूं। यह एक मूल बात है यार। उस 'आउट' चर से आप डेटा लिख ​​सकते हैं। क्या आप OutPutStream में डेटा लिखने के बारे में जानते हैं ??? –

संबंधित मुद्दे