Получить информацию о версии AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Получить информацию о версии Android

Сообщение Anonymous »

Я хочу получить информацию о версии Android от Unity. Я знаю, что для этого можно использовать SystemInfo.operatingSystem, но он не содержит всей информации, такой как номер выпуска, кодовое имя и другую информацию.

Я решил создать небольшой плагин с классом Unity AndroidJavaClass, используя класс Android Build.VERSION, но столкнулся с проблемой, которую не могу объяснить.

Когда я это сделаю:

AndroidJavaClass("android.os.Build.VERSION");


Я получаю исключение «Класс не найден».

Оно работает при использовании:

AndroidJavaClass("android.os.Build$VERSION");


Обратите внимание, что я заменил "." на "$", и теперь класс можно найти.

В прошлом я написал много плагинов и никогда раньше не сталкивался с этой проблемой. Например, когда я обращался к классу Android Uri, я использовал AndroidJavaClass("android.net.Uri");, и это сработало. Мне не нужно было ставить "$" перед "Uri".

Чем доступ к android.net.Uri отличается от доступа к android.os.Build.VERSION?

Почему вам нужно ставить "$" между Build и VERSION, чтобы AndroidJavaClass мог найти этот класс?

Кстати, вот рабочий плагин Build.VERSION в Unity:

public class AndroidVersion
{
static AndroidJavaClass versionInfo;

static AndroidVersion()
{
versionInfo = new AndroidJavaClass("android.os.Build$VERSION");
}

public static string BASE_OS
{
get
{
return versionInfo.GetStatic("BASE_OS");
}
}

public static string CODENAME
{
get
{
return versionInfo.GetStatic("CODENAME");
}
}

public static string INCREMENTAL
{
get
{
return versionInfo.GetStatic("INCREMENTAL");
}
}

public static int PREVIEW_SDK_INT
{
get
{
return versionInfo.GetStatic("PREVIEW_SDK_INT");
}
}

public static string RELEASE
{
get
{
return versionInfo.GetStatic("RELEASE");
}
}

public static string SDK
{
get
{
return versionInfo.GetStatic("SDK");
}
}

public static int SDK_INT
{
get
{
return versionInfo.GetStatic("SDK_INT");
}
}

public static string SECURITY_PATCH
{
get
{
return versionInfo.GetStatic("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;
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/451 ... nformation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»