Save image saved in internal storage?

I encoded the survey and saved it to external storage. It works well on my tablet with an SD card. However, I am having problems with a phone that does not support an SD card. Can someone help me write codes to save to internal storage. Thanks!

((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) ; } 
+7
source share
1 answer

It is very simple .. Instead of the external file path name. You must specify the name of the internal file. This is FileOutputStream out = new FileOutputStream(new File(getFilesDir()+File.separator+"MyFile.jpg")); . Try it. It works well.

and

One more thing: you have to add permission for internal storage to Android Manifest.xml file

 <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/> 
-4
source

All Articles