unity 中c#进行调用Android Java 中的类和方法(AndroidJavaClass)

发现了一个类AndroidJavaClass,可以调用Android Java 中的类和方法,比如说获取当前设备的基带版本号,检测设备是否可以进行拨号,然后跳转到拨号界面啥的。
写的方法:

// 获取一个 AndroidJavaObject 对象,该对象表示 java.text.SimpleDateFormat 类
AndroidJavaClass simpleDateFormatClass = new AndroidJavaClass("java.text.SimpleDateFormat");

// 创建一个 SimpleDateFormat 对象实例
AndroidJavaObject simpleDateFormat = simpleDateFormatClass.CallStatic<AndroidJavaObject>("getInstance");

// 调用对象实例上的 parse() 方法
AndroidJavaObject date = simpleDateFormat.Call<AndroidJavaObject>("parse", "2021-08-04 16:36:00");

// 将 Java Date 对象转换为 C# DateTime 对象
DateTime dateTime = new DateTime(date.Call<long>("getTime") * 10000 + DateTimeOffset.FromUnixTimeMilliseconds(0).Ticks, DateTimeKind.Utc);
Debug.Log(dateTime.ToString());

获取设备的基带版本号:

public string IsRunningOnEmulator6()
{
    
    
    if (Application.platform == RuntimePlatform.Android)
    {
    
    
        AndroidJavaClass buildClass = new AndroidJavaClass("android.os.Build");
        string radioVersion = buildClass.CallStatic<string>("getRadioVersion");
        return radioVersion;
    }
    return "";
}

AndroidJavaClass buildClass = new AndroidJavaClass("android.os.Build")创建了一个名为 buildClassAndroidJavaClass 对象,该对象表示 Android 系统中的 Build 类。Build 类包含了关于设备、系统版本、硬件和制造商等信息的静态字段和方法。

string radioVersion = buildClass.CallStatic<string>("getRadioVersion") 这行代码中,我们调用了 Build 类的静态方法 getRadioVersion() 并将其结果存储在字符串变量 radioVersion 中。getRadioVersion() 方法返回运营商无线电固件版本号,即基带版本号。因此,radioVersion 变量包含当前 Android 设备的基带版本号。

猜你喜欢

转载自blog.csdn.net/QO_GQ/article/details/130185961
今日推荐