Need help to save the Picture in Android phone

I have made a mobile application which needs to capture the picture and save it in android/iOS phone gallery. So far I can open the camera, can take a picture and save it in C drive of my system but I don’t know how to save the picture in phone. can someone help?? So far I have done this.

using UnityEngine;
using System.Collections;
using System.IO;
using System;

public class takeShot_trial : MonoBehaviour {

public string deviceName;

private WebCamTexture wct;

public string path = "";

IEnumerator Start(){

	WebCamDevice[] devices = WebCamTexture.devices;
	deviceName = devices [0].name;
	wct = new WebCamTexture (deviceName, 400, 300, 12);

	Renderer rend = GetComponent <Renderer> ();

	//For camera Authentication
	rend.material.mainTexture = wct;
	yield return Application.RequestUserAuthorization (UserAuthorization.WebCam);
	if (Application.HasUserAuthorization (UserAuthorization.WebCam)) {
		wct.Play ();

	} else {
		Debug.Log ("No Camera Found");

	//For Photo Variables


void OnGUI() {      
	if (GUI.Button (new Rect (10, 70, 500, 100), "Click"))
		TakeSnapshot ();

string fileName (int width, int height)
return string.Format ("screen_{0}x{1}x_{2}.png", width, height, System.DateTime.Now.ToString ("yyyy-MM-dd_HH-mm-ss"));

void TakeSnapshot()

	Texture2D snap = new Texture2D(wct.width, wct.height);

	byte[] bytes = snap.EncodeToPNG ();

	string filename = fileName (Convert.ToInt32 (snap.width), Convert.ToInt32 (snap.height));
	Application.CaptureScreenshot ("Snapshot.png");
	path=Application.dataPath + "/Snapshot" + filename;




If the camera is being found just fine it might be where your program thinks the file is going. The Application.CaptureScreenshot should be fed your filename before it changes. Also, try using persistant data path to make sure that cross platform does not get mixed up.

string extraData = Time.time; // other file attachments
string exportName = Application.persistentDataPath + "\\" + extraData;
Application.CaptureScreenshot(exportName); // filepath needs to go here

On your device it should now be in the folder where your application data is stored and can be recalled by your application when using IO for pictures in persistent data path. Check out Unity - Scripting API: Application.persistentDataPath and of course Unity - Scripting API: Application.CaptureScreenshot

The code for Application.CaptureScreenshot(“Screenshot.png”); still gets changed to where your persistent data path is even if you don’t set it manually on mobile.