unity调用安卓toast

using UnityEngine;

public class AndroidToast : MonoBehaviour
{

    #region 

    // 调用这个方法来显示Toast消息
    public static void ShowToast(string message, int duration)
    {
        // 确保代码只在Android执行
        if (Application.platform == RuntimePlatform.Android)
        {
            AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
            AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast");
            AndroidJavaObject context = activity.Call<AndroidJavaObject>("getApplicationContext");

            activity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
            {
                // Toast.LENGTH_SHORT对应的是0,Toast.LENGTH_LONG对应的是1
                AndroidJavaObject toastObject = new AndroidJavaObject("java.lang.String", message);
                Toast.CallStatic<AndroidJavaObject>("makeText", context, message, duration).Call("show");

            }));
        }
    }
    #endregion

}

调用方法:

using UnityEngine;
using UnityEngine.UI;

public class SendMessageToAndroid : MonoBehaviour
{
    [SerializeField] private Button shortMessage;
    [SerializeField] private Button longMessage;
    [SerializeField] private Button defaultMessage;

    void Start()
    {

        shortMessage.onClick.AddListener(() =>
        {
            // 显示一个短时Toast消息
            AndroidToast.ShowToast("这是一个短时Toast消息!", 0);
        });

        longMessage.onClick.AddListener(() =>
        {
            // 显示一个长时Toast消息
            AndroidToast.ShowToast("这是一个长时Toast消息!", 1);
        });
        defaultMessage.onClick.AddListener(() =>
        {

            AndroidToast.ToastShow("这是一个 default 消息!");
        });
    }

  
}

猜你喜欢

转载自blog.csdn.net/qq_38513810/article/details/139267679