2016-05-19 31 views
1

ユーザーがクリックすると、件名、メールアドレスが既に入力されているデフォルトのメールアプリが起動するはずです。私はAndroidアプリでこれを行っていますが、それを1から呼び出す方法はありますか?Androidのメールアドレスintent from Unity script

これ以外のフィードバック方法はありますか?

答えて

0

ボタンをあなたが呼び出す必要がありますクリックしてください:

public void OpenActivity() 
    { 
     var androidJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
     var jo = androidJC.GetStatic<AndroidJavaObject>("currentActivity"); 
     // Accessing the class to call a static method on it 
     var jc = new AndroidJavaClass("com.xyz.abc.StartActivity"); 
     // Calling a Call method to which the current activity is passed 
     jc.CallStatic("Call", jo); 
    } 

} 

あなたの活動とパッケージ名で

するvar JC =新AndroidJavaClass( "com.xyz.abc.StartActivity")を交換してください。

2

あなたがやっていることは、プラグインです。これにはプラグインは必要ありません。

あなたは、単にに電子メールを送信することができます。これは、PC、AndroidとiOS上で動作します

sendEmail("[email protected]", "Test", "This is a text\r\nAnother test\r\nAnd another text"); 

:呼び出し、送信するには

void sendEmail(string toEmail, string emailSubject, string emailBody) 
{ 
    emailSubject = System.Uri.EscapeUriString(emailSubject); 
    emailBody = System.Uri.EscapeUriString(emailSubject); 
    Application.OpenURL("mailto:" + toEmail + "?subject=" + emailSubject + "&body=" + emailBody); 
} 

。私はMacについて知らない。

まだAndroid APIを使用したい場合は、まだプラグインを作成する必要はありません。 AndroidJavaObjectを使用し、Android APIでメールコードを書くことができます。

private static void SendMail(string subject, string body, bool useHTML) 
{ 
    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 (useHTML) 
       // 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, emailSubject); 
      intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject); 

      // Setting emailBody 
      if (useHTML) 
      { 
       // intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(emailBody)); 
       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 
      { 
       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); 
       } 
      } 
     } 
    } 
} 

そしてそれをSendMail("test", "Message", false);と呼びます。それを改善し、それに多くの機能を追加することができます。この最後の例はhereから解除されました。

+0

私はメールの本文を入力するために顧客が必要です。残りのすべてには事前入力があります。 –

+0

@ Chandu-Indyaah私の答えの最初の機能はそれを行います。あなたは 'InputField'から本文を取得し、それをsendEmail関数に渡します。その後、電子メールを送信して、自分自身をこの機能に入れます。ここでは何が難しいですか?私はこれをどのように使用するかの例を示しました。 – Programmer