Guardar la imagen capturada en el almacenamiento interno?

He codificado la toma de la imagen y guardarla en el almacenamiento externo. Funciona bien en mi tableta con una tarjeta SD. Sin embargo, tengo algunos problemas con mi teléfono que no es la tarjeta de apoyo sd.Alguien puede ayudar a escribir códigos para guardar en el almacenamiento interno .¡Gracias!

((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) ; } 

Esto es muy simple .. En lugar de nombre de ruta de archivo externo .. Debe dar el nombre de ruta de archivo interno .. Que es FileOutputStream out = new FileOutputStream(new File(getFilesDir()+File.separator+"MyFile.jpg")); ..Ple intentarlo .. Está funcionando bien

y

Una cosa más, debe agregar el permiso para almacenamiento interno en el archivo Manifest.xml de Android

 <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.