微信分享方法

private IEnumerator TakeScreenshot(Texture2D texture2D, string shareAndroidPNG)
{
isProcessing = true;

    yield return new WaitForEndOfFrame();


    texture2D.Apply();
    string destination = Path.Combine(Application.persistentDataPath, shareAndroidPNG);
    File.WriteAllBytes(destination, texture2D.EncodeToPNG());
    yield return new WaitForSeconds(0.3f);
    if (!Application.isEditor)
    {

        WWW www = new WWW("file://" + destination);
        while (!www.isDone)
        {
            yield return null;
        }
        Texture2D picture = www.texture;
        byte[] bytes = new AndroidJavaObject("android.util.Base64").CallStatic<byte[]>("decode", System.Convert.ToBase64String(picture.EncodeToPNG()), 0);
        AndroidJavaObject bitmap = new AndroidJavaObject("android.graphics.BitmapFactory").CallStatic<AndroidJavaObject>("decodeByteArray", bytes, 0, bytes.Length);
        AndroidJavaObject compress = new AndroidJavaClass("android.graphics.Bitmap$CompressFormat").GetStatic<AndroidJavaObject>("JPEG");
        bitmap.Call<bool>("compress", compress, 100, new AndroidJavaObject("java.io.ByteArrayOutputStream"));
        string path = new AndroidJavaClass("android.provider.MediaStore$Images$Media").CallStatic<string>("insertImage", new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity").Call<AndroidJavaObject>("getContentResolver"), bitmap, picture.name, "");
        AndroidJavaObject uri = new AndroidJavaClass("android.net.Uri").CallStatic<AndroidJavaObject>("parse", path);

        AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
        AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
        intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
        AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
        AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + destination);
        intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject);
        intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "Can you beat my score?");
        intentObject.Call<AndroidJavaObject>("setType", "image/jpeg");
        intentObject.Call<AndroidJavaObject>("putExtra", "android.intent.extra.STREAM", uri);
        intentObject.Call<AndroidJavaObject>("putExtra", "android.intent.extra.TEXT", "魔性的肉条可以减肥的哟!https://www.taptap.com/app/147852");
        AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject chooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, "Share your new score");
        currentActivity.Call("startActivity", chooser);
        yield return new WaitForSeconds(1f);
    }
    yield return new WaitUntil(() => isFocus);
    isProcessing = false;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值