0

i am trying to store the bitmap on sd card hear is my code for store the image it working fine on all devices but not in samsung devices only ...

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

call asynctask using this code

    new SaveFile(mybitmap).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

my java file asynctask snippet

class SaveFile extends AsyncTask<String, String, String> {

    Bitmap bmp;

    public SaveFile(Bitmap bmp) {
        // TODO Auto-generated constructor stub

        this.bmp = bmp;

    }

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        super.onPreExecute();

        FullScreenViewActivity.this.progress = ProgressDialog.show(
                FullScreenViewActivity.this, "", "Please wait...");
    }

    @Override
    protected String doInBackground(String... f_url) {
        Log.i("asynk call ", "from");

        OutputStream output;

        Calendar cal = Calendar.getInstance();

        // Find the SD Card path
        File filepath = Environment.getExternalStorageDirectory();

        // Create a new folder in SD Card
        File dir = new File(filepath.getAbsolutePath() + "/Tatto/");
        dir.mkdirs();

        String mImagename = "image" + cal.getTimeInMillis() + ".png";

        // Create a name for the saved image
        file = new File(dir, mImagename);

        // Show a toast message on successful save
        /*
         * Toast.makeText(CaptureActivity.this, "Image Saved to SD Card",
         * Toast.LENGTH_SHORT).show();
         */
        try {

            output = new FileOutputStream(file);
            // Compress into png format image from 0% - 100%
            bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
            output.flush();
            output.close();
        }

        catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

            progress.dismiss();
            Log.i("captureImage call + in catch   ", "" + e);

        }

        Log.i("asynk call end  ", "from");

        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        // TODO Auto-generated method stub


        progress.dismiss();
        Toast.makeText(FullScreenViewActivity.this, "Image Saved...",
                Toast.LENGTH_SHORT).show();

    }

}

Error Log..

12-14 13:53:36.361: D/AndroidRuntime(20430): Shutting down VM 12-14 13:53:36.361: W/dalvikvm(20430): threadid=1: thread exiting with uncaught exception (group=0x419088b0) 12-14 13:53:36.371: E/AndroidRuntime(20430): FATAL EXCEPTION: main 12-14 13:53:36.371: E/AndroidRuntime(20430): java.lang.RuntimeException: setParameters failed 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.hardware.Camera.native_setParameters(Native Method) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.hardware.Camera.setParameters(Camera.java:1551) 12-14 13:53:36.371: E/AndroidRuntime(20430): at com.karma.tattoo.MainActivity.surfaceCreated(MainActivity.java:403) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.SurfaceView.updateWindow(SurfaceView.java:571) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.SurfaceView.access$000(SurfaceView.java:86) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:175) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:837) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1870) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1009) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5508) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.Choreographer.doFrame(Choreographer.java:532) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.os.Handler.handleCallback(Handler.java:730) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.os.Handler.dispatchMessage(Handler.java:92) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.os.Looper.loop(Looper.java:213) 12-14 13:53:36.371: E/AndroidRuntime(20430): at android.app.ActivityThread.main(ActivityThread.java:5225) 12-14 13:53:36.371: E/AndroidRuntime(20430): at java.lang.reflect.Method.invokeNative(Native Method) 12-14 13:53:36.371: E/AndroidRuntime(20430): at java.lang.reflect.Method.invoke(Method.java:525) 12-14 13:53:36.371: E/AndroidRuntime(20430): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 12-14 13:53:36.371: E/AndroidRuntime(20430): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 12-14 13:53:36.371: E/AndroidRuntime(20430): at dalvik.system.NativeStart.main(Native Method)

please help me if i am going wrong .... the problem is only on samsung devices ...

Sagar Devani
  • 242
  • 1
  • 3
  • 10

1 Answers1

2

finally found the answer Camera.Parameters device specific crash (Samsung S3 Mini) It is failing because not all devices support arbitrary preview sizes.

Community
  • 1
  • 1
Sagar Devani
  • 242
  • 1
  • 3
  • 10