您的位置:首页 > 移动开发 > Unity3D

Unity3D-Android直接使用系统自带邮件发送反馈

2017-09-21 12:52 1636 查看
在上一篇是直接调用一个选择框,这样还是不够方便,需要用户多一次选择。我们能不能像IOS一样,跳转到邮件应用后,直接创建一个新的邮件,用户直接填写反馈信息发送呢?

由于并没有做过纯Android开发,在网上搜到其他人的代码,如果是原生Android是可以达到这个要求的。

在Android中,其实已经提供了三种方式去发送,我们上面的要求其实就是发送一个不带附件的邮件,Android实现是这样的:

Intent.ACTION_SENDTO 无附件的发送

Intent data=new Intent(Intent.ACTION_SENDTO);
data.setData(Uri.parse("mailto:xxxxx@163.com"));
data.putExtra(Intent.EXTRA_SUBJECT, "这是标题");
data.putExtra(Intent.EXTRA_TEXT, "这是内容");
startActivity(data);


这段代码其实看了之后,发现和我上一篇是类似的,只要转化成这种格式,虽然没有现成的用,但是可以根据上一篇调用系统软件的方式去修改就行了。

我后来通过修改后的代码如下:

AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SENDTO"));
AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "mailto:xxxx@163.com");
intentObject.Call<AndroidJavaObject>("setData", uriObject);
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), "[USERFEED]Android Test Feedback");
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "We will get your suggestion!");
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
currentActivity.Call("startActivity", intentObject);


经过测试,可以直接跳转到邮箱,然后新建了一个邮件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 邮件 Unity Unity3D