我想从Unity获取Android版本信息。我知道SystemInfo.operatingSystem
可以用来做到这一点,但它没有所有的信息,如版本号,代号和其他信息。获取Android版本信息
我决定用Unity的AndroidJavaClass
类制作一个小插件,使用Android的Build.VERSION
类,但遇到了一个我无法解释的问题。
当我这样做:
AndroidJavaClass("android.os.Build.VERSION");
我得到找不到类异常。
它工作时使用:
AndroidJavaClass("android.os.Build$VERSION");
请注意,我取代“”与“$”现在可以找到该类。
我写过很多插件,以前从未遇到过这个问题。对于example,当我访问Android的Uri
类时,我使用AndroidJavaClass("android.net.Uri");
并且它工作。我不必在“Uri
”之前放置“$”。
什么使访问android.net.Uri
有别于访问android.os.Build.VERSION
?
为什么你必须在Build和VERSION之间放置“$”才能让AndroidJavaClass
找到这个类?
顺便说一句,这里是Build.VERSION
在统一的工作插件:
public class AndroidVersion
{
static AndroidJavaClass versionInfo;
static AndroidVersion()
{
versionInfo = new AndroidJavaClass("android.os.Build$VERSION");
}
public static string BASE_OS
{
get
{
return versionInfo.GetStatic<string>("BASE_OS");
}
}
public static string CODENAME
{
get
{
return versionInfo.GetStatic<string>("CODENAME");
}
}
public static string INCREMENTAL
{
get
{
return versionInfo.GetStatic<string>("INCREMENTAL");
}
}
public static int PREVIEW_SDK_INT
{
get
{
return versionInfo.GetStatic<int>("PREVIEW_SDK_INT");
}
}
public static string RELEASE
{
get
{
return versionInfo.GetStatic<string>("RELEASE");
}
}
public static string SDK
{
get
{
return versionInfo.GetStatic<string>("SDK");
}
}
public static int SDK_INT
{
get
{
return versionInfo.GetStatic<int>("SDK_INT");
}
}
public static string SECURITY_PATCH
{
get
{
return versionInfo.GetStatic<string>("SECURITY_PATCH");
}
}
public static string ALL_VERSION
{
get
{
string version = "BASE_OS: " + BASE_OS + "\n";
version += "CODENAME: " + CODENAME + "\n";
version += "INCREMENTAL: " + INCREMENTAL + "\n";
version += "PREVIEW_SDK_INT: " + PREVIEW_SDK_INT + "\n";
version += "RELEASE: " + RELEASE + "\n";
version += "SDK: " + SDK + "\n";
version += "SDK_INT: " + SDK_INT + "\n";
version += "SECURITY_PATCH: " + SECURITY_PATCH;
return version;
}
}
}
好内部的
Build
类中,这是有道理的。这是否意味着['android.net.Uri'](https://developer.android.com/reference/android/net/Uri.html)是** NOT **内部类?由于我将在该功能中制作更多插件,我如何知道某个类是否是Android文档中的内部类? – Programmer是的,Uri是一个完全独立的类,要知道内部类是去挖掘源代码或只是检查类本身的名称。 (parent_name)。(innner_class_name) –
明白了。谢谢(你的)信息。 – Programmer