64 lines
2.5 KiB
C#
64 lines
2.5 KiB
C#
using Android.App;
|
||
using Android.Content.PM;
|
||
using Android.OS;
|
||
using Microsoft.AspNetCore.Components.WebView.Maui;
|
||
using System.Text;
|
||
using AndroidX.Core.View;
|
||
using Android.Views;
|
||
|
||
namespace XiaoZhiSharp_MauiBlazorApp
|
||
{
|
||
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
|
||
public class MainActivity : MauiAppCompatActivity
|
||
{
|
||
protected override void OnCreate(Bundle savedInstanceState)
|
||
{
|
||
// 获取 Android ID 并格式化为 MAC 地址格式
|
||
var androidId = Android.Provider.Settings.Secure.GetString(ContentResolver, Android.Provider.Settings.Secure.AndroidId);
|
||
var formattedAndroidId = FormatAndroidIdToMacFormat(androidId);
|
||
Global.DeviceId = formattedAndroidId;
|
||
|
||
base.OnCreate(savedInstanceState);
|
||
|
||
// 设置状态栏颜色和样式
|
||
if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
|
||
{
|
||
Window?.SetStatusBarColor(Android.Graphics.Color.ParseColor("#4a90e2")); // 设置为蓝色
|
||
|
||
// 设置状态栏文字为白色(适配深色背景)
|
||
if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
|
||
{
|
||
var decorView = Window?.DecorView;
|
||
if (decorView != null)
|
||
{
|
||
// 清除SYSTEM_UI_FLAG_LIGHT_STATUS_BAR标志,使状态栏文字变白
|
||
var flags = (int)decorView.SystemUiVisibility;
|
||
flags &= ~(int)SystemUiFlags.LightStatusBar;
|
||
decorView.SystemUiVisibility = (StatusBarVisibility)flags;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// 将 Android ID 格式化为 MAC 地址格式
|
||
public string FormatAndroidIdToMacFormat(string androidId)
|
||
{
|
||
if (string.IsNullOrEmpty(androidId))
|
||
{
|
||
return string.Empty;
|
||
}
|
||
|
||
StringBuilder formattedId = new StringBuilder();
|
||
for (int i = 0; i < 12; i++)
|
||
{
|
||
formattedId.Append(androidId[i]);
|
||
if ((i + 1) % 2 == 0 && i < 12 - 1)
|
||
{
|
||
formattedId.Append(":");
|
||
}
|
||
}
|
||
return formattedId.ToString();
|
||
}
|
||
}
|
||
}
|