save screen contents as a image into internal memory and share with social media programatically

297 views Asked by At

Below code will capture the screen and store it in SD card. I want Then it will send this file via sharable apps.I want to store it in internal memory of phone instead but I am unable to do that.Please help me for the same.

    WebView view = (WebView) findViewById(R.id.webView1);
    @SuppressWarnings("deprecation")
    Picture picture = view.capturePicture(); 

    Bitmap  b = Bitmap.createBitmap( picture.getWidth(), 
            picture.getHeight(), Bitmap.Config.ARGB_8888); 

    Canvas c = new Canvas( b ); 

    picture.draw( c ); 

    String filePath = Environment.getExternalStorageDirectory()
            + File.separator + "score.png";
    File imagePath = new File(filePath);
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(imagePath);
        if(fos!=null)
        {
        b.compress(CompressFormat.PNG, 100, fos);
        fos.flush();
        fos.close();
        }
        if(imagePath.exists())
        {
        sendMail(filePath);
        }
        else
        {
            Log.e("fie","file doesnt exist");
        }
    } catch (FileNotFoundException e) {
    } catch (IOException e) {
    }

public void sendMail(String path) {
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        //emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
           //     new String[] { "[email protected]" });
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
                "My Score in Mock Test");
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,
                "PFA");
        emailIntent.setType("image/png");
        Uri myUri = Uri.parse("file://" + path);
        emailIntent.putExtra(Intent.EXTRA_STREAM, myUri);
        startActivity(Intent.createChooser(emailIntent, "share score card..."));
    }

I tried to achieve this with below code found on stack overflow but it is not working. This code is not showing any exception when I debug through it but file is not creating to internal memory and so sending is failing.

0

There are 0 answers