string url = string.Format("mailto:{0}?subject={1}&body={2}", to, WWW.EscapeURL(subject), WWW.EscapeURL(body)); Application.OpenURL(url);
intent = new Intent(Intent.ACTION_SEND); if (isHTML) intent.setType("text/html"); else intent.setType("message/rfc822"); intent.putExtra(Intent.EXTRA_SUBJECT, subject); if (isHTML) intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body)); else intent.putExtra(Intent.EXTRA_TEXT, body); startActivity(intent);
/// <summary> /// Sends mail using default mail application. /// </summary> private static void SendMail(string subject, string body, bool isHTML) { using (var intentClass = new AndroidJavaClass("android.content.Intent")) { // intent = new Intent(Intent.ACTION_SEND); using (var intentObject = new AndroidJavaObject("android.content.Intent", intentClass.GetStatic<string>("ACTION_SEND"))) { // Setting text type if (isHTML) // intent.setType("text/html"); intentObject.Call<AndroidJavaObject>("setType", "text/html"); else // intent.setType("message/rfc822"); intentObject.Call<AndroidJavaObject>("setType", "message/rfc822"); // intent.putExtra(Intent.EXTRA_SUBJECT, subject); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject); // Setting body if (isHTML) { // intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body)); using (var html = new AndroidJavaClass("android.text.Html")) { var htmlBody = html.CallStatic<AndroidJavaObject>("fromHtml", body); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), htmlBody); } } else { // intent.putExtra(Intent.EXTRA_TEXT, body); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), body); } // startActivity(intent); using (var unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { using (var currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity")) { currentActivity.Call("startActivity", intentObject); } } } } }
intentClass.GetStatic<string>("EXTRA_TEXT")
var intentObject = new AndroidJavaObject("android.content.Intent", intentClass.GetStatic<string>("ACTION_SEND"))
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), body);
using (var unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { using (var currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity")) { currentActivity.Call("startActivity", intentObject); } }
Source: https://habr.com/ru/post/175509/
All Articles