fix: Fix update checker by adding user agent

This commit is contained in:
2025-06-21 02:23:34 +08:00
parent 38421b7a53
commit cdaf0dfd2f
2 changed files with 31 additions and 2 deletions

View File

@@ -19,6 +19,7 @@ using Newtonsoft.Json;
using System;
using System.Globalization;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Xml;
using System.Xml.Linq;
@@ -47,6 +48,8 @@ namespace Cryville.Crtr {
static FileStream _logFileStream;
static StreamLoggerListener _logWriter;
public static string UnityUserAgent { get; private set; }
static bool _init;
public static void Init() {
if (_init) return;
@@ -177,6 +180,32 @@ namespace Cryville.Crtr {
Settings.Default.LastRunVersion = Application.version;
Settings.Default.Save();
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
UnityUserAgent = string.Format(
CultureInfo.InvariantCulture,
"CosmoResona/{0} (Windows NT {1}; {2})",
Application.version,
Environment.OSVersion.Version,
RuntimeInformation.OSArchitecture.ToString().ToLowerInvariant()
);
#elif UNITY_ANDROID
var androidClassBuildVersion = AndroidJNI.FindClass("android/os/Build$VERSION");
var androidRelease = AndroidJNI.GetStaticStringField(androidClassBuildVersion, AndroidJNI.GetStaticFieldID(androidClassBuildVersion, "RELEASE", "Ljava/lang/String;"));
var androidClassBuild = AndroidJNI.FindClass("android/os/Build");
var androidModel = AndroidJNI.GetStaticStringField(androidClassBuild, AndroidJNI.GetStaticFieldID(androidClassBuild, "MODEL", "Ljava/lang/String;"));
var androidID = AndroidJNI.GetStaticStringField(androidClassBuild, AndroidJNI.GetStaticFieldID(androidClassBuild, "ID", "Ljava/lang/String;"));
UnityUserAgent = string.Format(
CultureInfo.InvariantCulture,
"CosmoResona/{0} (Linux; Android {1}; {2} Build/{3})",
Application.version,
androidRelease ?? "12.0.99",
androidModel,
androidID
);
#else
#error No Unity User Agent
#endif
MainLogger.Log(1, "UI", "Initializing font manager");
foreach (var res in Resources.LoadAll<TextAsset>("cldr/common/validity")) {
IdValidity.Load(LoadXmlDocument(res));