API Difference Mono.Android.dll $(TargetFrameworkVersion)=v11.0 vs $(TargetFrameworkVersion)=v12.0

API listing follows standard diff formatting. Lines preceded by a '+' are additions and a '-' indicates removal.

Android

 namespace Android {
     public sealed class Manifest : Object {
         public sealed class Permission : Object {
+            public const string AccessBlobsAcrossUsers = "android.permission.ACCESS_BLOBS_ACROSS_USERS";
+            public const string BindCompanionDeviceService = "android.permission.BIND_COMPANION_DEVICE_SERVICE";
+            public const string BluetoothAdvertise = "android.permission.BLUETOOTH_ADVERTISE";
+            public const string BluetoothConnect = "android.permission.BLUETOOTH_CONNECT";
+            public const string BluetoothScan = "android.permission.BLUETOOTH_SCAN";
+            public const string HideOverlayWindows = "android.permission.HIDE_OVERLAY_WINDOWS";
+            public const string HighSamplingRateSensors = "android.permission.HIGH_SAMPLING_RATE_SENSORS";
+            public const string ManageMedia = "android.permission.MANAGE_MEDIA";
+            public const string ManageOngoingCalls = "android.permission.MANAGE_ONGOING_CALLS";
+            public const string RequestCompanionProfileWatch = "android.permission.REQUEST_COMPANION_PROFILE_WATCH";
+            public const string RequestCompanionStartForegroundServicesFromBackground = "android.permission.REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND";
+            public const string RequestObserveCompanionDevicePresence = "android.permission.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE";
+            public const string ScheduleExactAlarm = "android.permission.SCHEDULE_EXACT_ALARM";
+            public const string StartForegroundServicesFromBackground = "android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND";
+            public const string UpdatePackagesWithoutUserAction = "android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION";
+            public const string UseIccAuthWithDeviceIdentifier = "android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER";
+            public const string UwbRanging = "android.permission.UWB_RANGING";
         }
         public sealed class Permission_group : Object {
+            public const string NearbyDevices = "android.permission-group.NEARBY_DEVICES";
         }
     }
     public sealed class Resource : Object {
         public sealed class Attribute : Object {
+            public const int AllowClickWhenDisabled = 16844312;
+            public const int AttributionsAreUserVisible = 16844363;
+            public const int AttributionTags = 16844354;
+            public const int CanPauseRecording = 16844314;
+            public const int ClipToOutline = 16844328;
+            public const int DataExtractionRules = 16844350;
+            public const int DialTint = 16844342;
+            public const int DialTintMode = 16844343;
+            public const int EffectColor = 16844361;
+            public const int FontProviderSystemFontFamily = 16844322;
+            public const int HandHourTint = 16844344;
+            public const int HandHourTintMode = 16844345;
+            public const int HandMinuteTint = 16844346;
+            public const int HandMinuteTintMode = 16844347;
+            public const int HandSecond = 16844323;
+            public const int HandSecondTint = 16844348;
+            public const int HandSecondTintMode = 16844349;
+            public const int IsAccessibilityTool = 16844353;
+            public const int KnownCerts = 16844330;
+            public const int LStar = 16844359;
+            public const int MaxResizeHeight = 16844339;
+            public const int MaxResizeWidth = 16844338;
+            public const int MemtagMode = 16844324;
+            public const int NativeHeapZeroInitialized = 16844325;
+            public const int PasswordsActivity = 16844351;
+            public const int PathAdvancedPattern = 16844320;
+            public const int PathSuffix = 16844318;
+            public const int PreviewLayout = 16844327;
+            public const int RequestRawExternalStorageAccess = 16844357;
+            public const int RequireDeviceScreenOn = 16844317;
+            public const int RollbackDataPolicy = 16844311;
+            public const int SelectableAsDefault = 16844352;
+            public const int ShowInInputMethodPicker = 16844360;
+            public const int SplashScreenTheme = 16844337;
+            public const int SspAdvancedPattern = 16844321;
+            public const int SspSuffix = 16844319;
+            public const int SuppressesSpellChecker = 16844355;
+            public const int TargetCellHeight = 16844341;
+            public const int TargetCellWidth = 16844340;
+            public const int UsesPermissionFlags = 16844356;
+            public const int WindowBackgroundBlurRadius = 16844331;
+            public const int WindowBlurBehindEnabled = 16844316;
+            public const int WindowBlurBehindRadius = 16844315;
+            public const int WindowLayoutAffinity = 16844313;
+            public const int WindowSplashScreenAnimatedIcon = 16844333;
+            public const int WindowSplashScreenAnimationDuration = 16844334;
+            public const int WindowSplashScreenBackground = 16844332;
+            public const int WindowSplashScreenBrandingImage = 16844335;
+            public const int WindowSplashScreenIconBackgroundColor = 16844336;
         }
         public sealed class Color : Object {
+            public const int SystemAccent10 = 17170487;
+            public const int SystemAccent110 = 17170488;
+            public const int SystemAccent1100 = 17170490;
+            public const int SystemAccent11000 = 17170499;
+            public const int SystemAccent1200 = 17170491;
+            public const int SystemAccent1300 = 17170492;
+            public const int SystemAccent1400 = 17170493;
+            public const int SystemAccent150 = 17170489;
+            public const int SystemAccent1500 = 17170494;
+            public const int SystemAccent1600 = 17170495;
+            public const int SystemAccent1700 = 17170496;
+            public const int SystemAccent1800 = 17170497;
+            public const int SystemAccent1900 = 17170498;
+            public const int SystemAccent20 = 17170500;
+            public const int SystemAccent210 = 17170501;
+            public const int SystemAccent2100 = 17170503;
+            public const int SystemAccent21000 = 17170512;
+            public const int SystemAccent2200 = 17170504;
+            public const int SystemAccent2300 = 17170505;
+            public const int SystemAccent2400 = 17170506;
+            public const int SystemAccent250 = 17170502;
+            public const int SystemAccent2500 = 17170507;
+            public const int SystemAccent2600 = 17170508;
+            public const int SystemAccent2700 = 17170509;
+            public const int SystemAccent2800 = 17170510;
+            public const int SystemAccent2900 = 17170511;
+            public const int SystemAccent30 = 17170513;
+            public const int SystemAccent310 = 17170514;
+            public const int SystemAccent3100 = 17170516;
+            public const int SystemAccent31000 = 17170525;
+            public const int SystemAccent3200 = 17170517;
+            public const int SystemAccent3300 = 17170518;
+            public const int SystemAccent3400 = 17170519;
+            public const int SystemAccent350 = 17170515;
+            public const int SystemAccent3500 = 17170520;
+            public const int SystemAccent3600 = 17170521;
+            public const int SystemAccent3700 = 17170522;
+            public const int SystemAccent3800 = 17170523;
+            public const int SystemAccent3900 = 17170524;
+            public const int SystemNeutral10 = 17170461;
+            public const int SystemNeutral110 = 17170462;
+            public const int SystemNeutral1100 = 17170464;
+            public const int SystemNeutral11000 = 17170473;
+            public const int SystemNeutral1200 = 17170465;
+            public const int SystemNeutral1300 = 17170466;
+            public const int SystemNeutral1400 = 17170467;
+            public const int SystemNeutral150 = 17170463;
+            public const int SystemNeutral1500 = 17170468;
+            public const int SystemNeutral1600 = 17170469;
+            public const int SystemNeutral1700 = 17170470;
+            public const int SystemNeutral1800 = 17170471;
+            public const int SystemNeutral1900 = 17170472;
+            public const int SystemNeutral20 = 17170474;
+            public const int SystemNeutral210 = 17170475;
+            public const int SystemNeutral2100 = 17170477;
+            public const int SystemNeutral21000 = 17170486;
+            public const int SystemNeutral2200 = 17170478;
+            public const int SystemNeutral2300 = 17170479;
+            public const int SystemNeutral2400 = 17170480;
+            public const int SystemNeutral250 = 17170476;
+            public const int SystemNeutral2500 = 17170481;
+            public const int SystemNeutral2600 = 17170482;
+            public const int SystemNeutral2700 = 17170483;
+            public const int SystemNeutral2800 = 17170484;
+            public const int SystemNeutral2900 = 17170485;
         }
         public sealed class Dimension : Object {
+            public const int SystemAppWidgetBackgroundRadius = 17104904;
+            public const int SystemAppWidgetInnerRadius = 17104905;
         }
     }
 }

Android.AccessibilityServices

 namespace Android.AccessibilityServices {
     public enum AccessibilityGesture {
+        ThreeFingerSingleTapAndHold = 44,
+        ThreeFingerTripleTapAndHold = 45,
+        TwoFingerTripleTapAndHold = 43,
+        Unknown = 0,
     }
     public sealed class AccessibilityGestureEvent : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IList<MotionEvent> MotionEvents { get; }
+        public static string GestureIdToString(int id);
     }
     public abstract class AccessibilityService : Service {
+        public const AccessibilityGesture Gesture2FingerTripleTapAndHold = AccessibilityGesture.TwoFingerTripleTapAndHold;
+        public const AccessibilityGesture Gesture3FingerSingleTapAndHold = AccessibilityGesture.ThreeFingerSingleTapAndHold;
+        public const AccessibilityGesture Gesture3FingerTripleTapAndHold = AccessibilityGesture.ThreeFingerTripleTapAndHold;
+        public const AccessibilityGesture GestureUnknown = AccessibilityGesture.Unknown;
+        public const GlobalAction GlobalActionAccessibilityAllApps = GlobalAction.AccessibilityAllApps;
+        public const GlobalAction GlobalActionAccessibilityButton = GlobalAction.AccessibilityButton;
+        public const GlobalAction GlobalActionAccessibilityButtonChooser = GlobalAction.AccessibilityButtonChooser;
+        public const GlobalAction GlobalActionAccessibilityShortcut = GlobalAction.AccessibilityShortcut;
+        public const GlobalAction GlobalActionDismissNotificationShade = GlobalAction.DismissNotificationShade;
+        public const GlobalAction GlobalActionKeycodeHeadsethook = GlobalAction.KeycodeHeadsetHook;
+        public virtual void SetAccessibilityFocusAppearance(int strokeWidth, Color color);
     }
     public enum AccessibilityServiceFlags {
+        RequestTwoFingerPassthrough = 8192,
+        SendMotionEvents = 16384,
     }
     public class AccessibilityServiceInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AccessibilityServiceFlags FlagRequest2FingerPassthrough = AccessibilityServiceFlags.RequestTwoFingerPassthrough;
+        public const AccessibilityServiceFlags FlagSendMotionEvents = AccessibilityServiceFlags.SendMotionEvents;
+        public virtual bool IsAccessibilityTool { get; }
     }
     public enum GlobalAction {
+        AccessibilityAllApps = 14,
+        AccessibilityButton = 11,
+        AccessibilityButtonChooser = 12,
+        AccessibilityShortcut = 13,
+        DismissNotificationShade = 15,
+        KeycodeHeadsetHook = 10,
     }
 }

Android.App

 namespace Android.App {
     public class Activity : ContextThemeWrapper, IComponentCallbacks, IComponentCallbacks2, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback, LayoutInflater.IFactory, LayoutInflater.IFactory2, View.IOnCreateContextMenuListener, Window.ICallback {
+        public virtual bool IsLaunchedFromBubble { get; }
+        public ISplashScreen SplashScreen { get; }
+        public virtual void OnPictureInPictureUiStateChanged(PictureInPictureUiState pipState);
     }
     public class AlarmManager : Object {
+        public const string ActionScheduleExactAlarmPermissionStateChanged = "android.app.action.SCHEDULE_EXACT_ALARM_PERMISSION_STATE_CHANGED";
+        public virtual bool CanScheduleExactAlarms();
     }
     public class AppOpsManager : Object {
+        public virtual void FinishProxyOp(string op, int proxiedUid, string proxiedPackageName, string? proxiedAttributionTag);
+        public virtual int StartProxyOp(string op, int proxiedUid, string proxiedPackageName, string? proxiedAttributionTag, string? message);
+        public virtual int StartProxyOpNoThrow(string op, int proxiedUid, string proxiedPackageName, string? proxiedAttributionTag, string? message);
     }
+    public sealed class BackgroundServiceStartNotAllowedException : ServiceStartNotAllowedException, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public BackgroundServiceStartNotAllowedException(string message);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class ForegroundServiceStartNotAllowedException : ServiceStartNotAllowedException, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public ForegroundServiceStartNotAllowedException(string message);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class GameManager : Object {
+        public const GameMode GameModeBattery = GameMode.Battery;
+        public const GameMode GameModePerformance = GameMode.Performance;
+        public const GameMode GameModeStandard = GameMode.Standard;
+        public const GameMode GameModeUnsupported = GameMode.Unsupported;
+        public int GameMode { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum GameMode {
+        Battery = 3,
+        Performance = 2,
+        Standard = 1,
+        Unsupported = 0,
+    }
     public class Notification : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const NotificationForegroundService ForegroundServiceDefault = NotificationForegroundService.Default;
+        public const NotificationForegroundService ForegroundServiceDeferred = NotificationForegroundService.Deferred;
+        public const NotificationForegroundService ForegroundServiceImmediate = NotificationForegroundService.Immediate;
+        public const string CategoryLocationSharing = "location_sharing";
+        public const string CategoryMissedCall = "missed_call";
+        public const string CategoryStopwatch = "stopwatch";
+        public const string CategoryWorkout = "workout";
+        public const string ExtraAnswerColor = "android.answerColor";
+        public const string ExtraAnswerIntent = "android.answerIntent";
+        public const string ExtraCallIsVideo = "android.callIsVideo";
+        public const string ExtraCallPerson = "android.callPerson";
+        public const string ExtraDeclineColor = "android.declineColor";
+        public const string ExtraDeclineIntent = "android.declineIntent";
+        public const string ExtraHangUpIntent = "android.hangUpIntent";
+        public const string ExtraPictureContentDescription = "android.pictureContentDescription";
+        public const string ExtraPictureIcon = "android.pictureIcon";
+        public const string ExtraShowBigPictureWhenCollapsed = "android.showBigPictureWhenCollapsed";
+        public const string ExtraVerificationIcon = "android.verificationIcon";
+        public const string ExtraVerificationText = "android.verificationText";
-        public Notification(Parcel parcel);
+        public Notification(Parcel? parcel);
-        public Notification(int icon, ICharSequence tickerText, long when);
+        public Notification(int icon, ICharSequence? tickerText, long when);
-        public Notification(int icon, string tickerText, long when);
+        public Notification(int icon, string? tickerText, long when);
-        public AudioAttributes AudioAttributes { get; set; }
+        public AudioAttributes? AudioAttributes { get; set; }
-        public static AudioAttributes AudioAttributesDefault { get; }
+        public static AudioAttributes? AudioAttributesDefault { get; }
-        public RemoteViews BigContentView { get; set; }
+        public RemoteViews? BigContentView { get; set; }
-        public string Category { get; set; }
+        public string? Category { get; set; }
-        public virtual string ChannelId { get; }
+        public virtual string? ChannelId { get; }
-        public PendingIntent ContentIntent { get; set; }
+        public PendingIntent? ContentIntent { get; set; }
-        public RemoteViews ContentView { get; set; }
+        public RemoteViews? ContentView { get; set; }
-        public static IParcelableCreator Creator { get; }
+        public static IParcelableCreator? Creator { get; }
-        public PendingIntent DeleteIntent { get; set; }
+        public PendingIntent? DeleteIntent { get; set; }
-        public Bundle Extras { get; set; }
+        public Bundle? Extras { get; set; }
-        public PendingIntent FullScreenIntent { get; set; }
+        public PendingIntent? FullScreenIntent { get; set; }
-        public virtual string Group { get; }
+        public virtual string? Group { get; }
+        public virtual bool HasImage { get; }
-        public RemoteViews HeadsUpContentView { get; set; }
+        public RemoteViews? HeadsUpContentView { get; set; }
-        public Bitmap LargeIcon { get; set; }
+        public Bitmap? LargeIcon { get; set; }
-        public virtual LocusId LocusId { get; }
+        public virtual LocusId? LocusId { get; }
-        public Notification PublicVersion { get; set; }
+        public Notification? PublicVersion { get; set; }
-        public string SettingsText { get; }
+        public string? SettingsText { get; }
-        public virtual ICharSequence SettingsTextFormatted { get; }
+        public virtual ICharSequence? SettingsTextFormatted { get; }
-        public virtual string ShortcutId { get; }
+        public virtual string? ShortcutId { get; }
-        public virtual Icon SmallIcon { get; }
+        public virtual Icon? SmallIcon { get; }
-        public virtual string SortKey { get; }
+        public virtual string? SortKey { get; }
-        public Uri Sound { get; set; }
+        public Uri? Sound { get; set; }
-        public ICharSequence TickerText { get; set; }
+        public ICharSequence? TickerText { get; set; }
-        public RemoteViews TickerView { get; set; }
+        public RemoteViews? TickerView { get; set; }
-        public virtual new Notification Clone();
+        public virtual new Notification? Clone();
-        public virtual Pair FindRemoteInputActionPair(bool requiresFreeform);
+        public virtual Pair? FindRemoteInputActionPair(bool requiresFreeform);
-        public virtual Notification.BubbleMetadata GetBubbleMetadata();
+        public virtual Notification.BubbleMetadata? GetBubbleMetadata();
-        public virtual Icon GetLargeIcon();
+        public virtual Icon? GetLargeIcon();
-        public virtual void SetLatestEventInfo(Context context, ICharSequence contentTitle, ICharSequence contentText, PendingIntent contentIntent);
+        public virtual void SetLatestEventInfo(Context? context, ICharSequence? contentTitle, ICharSequence? contentText, PendingIntent? contentIntent);
-        public void SetLatestEventInfo(Context context, string contentTitle, string contentText, PendingIntent contentIntent);
+        public void SetLatestEventInfo(Context? context, string? contentTitle, string? contentText, PendingIntent? contentIntent);
-        public virtual void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public virtual void WriteToParcel(Parcel? parcel, ParcelableWriteFlags flags);
         public class Action : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public virtual bool IsAuthenticationRequired { get; }
             public sealed class Builder : Object {
+                public Notification.Action.Builder SetAuthenticationRequired(bool authenticationRequired);
             }
         }
         public class BigPictureStyle : Notification.Style {
-            public BigPictureStyle(Notification.Builder builder);
+            public BigPictureStyle(Notification.Builder? builder);
-            public virtual Notification.BigPictureStyle BigLargeIcon(Bitmap b);
+            public virtual Notification.BigPictureStyle BigLargeIcon(Bitmap? b);
-            public virtual Notification.BigPictureStyle BigLargeIcon(Icon icon);
+            public virtual Notification.BigPictureStyle BigLargeIcon(Icon? icon);
-            public virtual Notification.BigPictureStyle BigPicture(Bitmap b);
+            public virtual Notification.BigPictureStyle BigPicture(Bitmap? b);
+            public virtual Notification.BigPictureStyle BigPicture(Icon? icon);
-            public override Notification Build();
+            public override Notification? Build();
-            public virtual Notification.BigPictureStyle SetBigContentTitle(ICharSequence title);
+            public virtual Notification.BigPictureStyle SetBigContentTitle(ICharSequence? title);
-            public Notification.BigPictureStyle SetBigContentTitle(string title);
+            public Notification.BigPictureStyle SetBigContentTitle(string? title);
+            public virtual Notification.BigPictureStyle SetContentDescription(ICharSequence? contentDescription);
+            public Notification.BigPictureStyle SetContentDescription(string? contentDescription);
-            public virtual Notification.BigPictureStyle SetSummaryText(ICharSequence cs);
+            public virtual Notification.BigPictureStyle SetSummaryText(ICharSequence? cs);
-            public Notification.BigPictureStyle SetSummaryText(string cs);
+            public Notification.BigPictureStyle SetSummaryText(string? cs);
+            public virtual Notification.BigPictureStyle ShowBigPictureWhenCollapsed(bool show);
         }
         public sealed class BubbleMetadata : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public bool IsBubbleSuppressable { get; }
+            public bool IsBubbleSuppressed { get; }
             public sealed class Builder : Object {
+                public Notification.BubbleMetadata.Builder SetSuppressableBubble(bool suppressBubble);
             }
         }
         public class Builder : Object {
+            public virtual Notification.Builder SetForegroundServiceBehavior(int behavior);
         }
+        public class CallStyle : Notification.Style {
+            protected CallStyle(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static Notification.CallStyle ForIncomingCall(Person person, PendingIntent declineIntent, PendingIntent answerIntent);
+            public static Notification.CallStyle ForOngoingCall(Person person, PendingIntent hangUpIntent);
+            public static Notification.CallStyle ForScreeningCall(Person person, PendingIntent hangUpIntent, PendingIntent answerIntent);
+            public virtual Notification.CallStyle SetAnswerButtonColorHint(Color color);
+            public virtual Notification.CallStyle SetDeclineButtonColorHint(Color color);
+            public virtual Notification.CallStyle SetIsVideo(bool isVideo);
+            public virtual Notification.CallStyle SetVerificationIcon(Icon? verificationIcon);
+            public virtual Notification.CallStyle SetVerificationText(ICharSequence? verificationText);
+            public Notification.CallStyle SetVerificationText(string? verificationText);
+        }
     }
+    public enum NotificationBubblePreference {
+        All = 1,
+        None = 0,
+        Selected = 2,
+    }
     public sealed class NotificationChannel : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string EditConversation = "conversation";
+        public const string EditImportance = "importance";
+        public const string EditLauncher = "launcher";
+        public const string EditLockedDevice = "locked";
+        public const string EditSound = "sound";
+        public const string EditVibration = "vibration";
+        public const string EditZen = "zen";
+        public bool IsConversation { get; }
+        public bool IsDemoted { get; }
     }
+    public enum NotificationForegroundService {
+        Default = 0,
+        Deferred = 2,
+        Immediate = 1,
+    }
     public class NotificationManager : Object {
+        public const NotificationBubblePreference BubblePreferenceAll = NotificationBubblePreference.All;
+        public const NotificationBubblePreference BubblePreferenceNone = NotificationBubblePreference.None;
+        public const NotificationBubblePreference BubblePreferenceSelected = NotificationBubblePreference.Selected;
+        public virtual int BubblePreference { get; }
+        public virtual bool AreBubblesEnabled();
     }
     public sealed class PendingIntent : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PendingIntentFlags FlagMutable = PendingIntentFlags.Mutable;
+        public bool IsActivity { get; }
+        public bool IsBroadcast { get; }
+        public bool IsForegroundService { get; }
+        public bool IsImmutable { get; }
+        public bool IsService { get; }
     }
     public enum PendingIntentFlags {
+        Mutable = 33554432,
     }
     public sealed class PictureInPictureParams : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class Builder : Object {
+            public virtual PictureInPictureParams.Builder SetAutoEnterEnabled(bool autoEnterEnabled);
+            public virtual PictureInPictureParams.Builder SetSeamlessResizeEnabled(bool seamlessResizeEnabled);
         }
     }
+    public sealed class PictureInPictureUiState : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public bool IsStashed { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public abstract class ServiceStartNotAllowedException : IllegalStateException {
+        protected ServiceStartNotAllowedException(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
     public sealed class UiAutomation : Object {
+        public const UiAutomationFlags FlagDontUseAccessibility = UiAutomationFlags.DontUseAccessibility;
+        public ParcelFileDescriptor[] ExecuteShellCommandRw(string command);
     }
     public enum UiAutomationFlags {
+        DontUseAccessibility = 2,
     }
     public class UiModeManager : Object {
+        public virtual void SetApplicationNightMode(int mode);
     }
     public sealed class WallpaperColors : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WallpaperColorsHint HintSupportsDarkText = WallpaperColorsHint.SupportsDarkText;
+        public const WallpaperColorsHint HintSupportsDarkTheme = WallpaperColorsHint.SupportsDarkTheme;
+        public WallpaperColors(ColorObject primaryColor, ColorObject secondaryColor, ColorObject tertiaryColor, int colorHints);
+        public int ColorHints { get; }
     }
+    public enum WallpaperColorsHint {
+        SupportsDarkText = 1,
+        SupportsDarkTheme = 2,
+    }
 }

Android.App.Admin

 namespace Android.App.Admin {
     public class DelegatedAdminReceiver : BroadcastReceiver {
+        public virtual void OnSecurityLogsAvailable(Context context, Intent intent);
     }
     public class DeviceAdminReceiver : BroadcastReceiver {
+        public const string ActionSecurityLogsAvailable = "android.app.action.SECURITY_LOGS_AVAILABLE";
+        public virtual void OnComplianceAcknowledgementRequired(Context context, Intent intent);
+        public virtual void OnOperationSafetyStateChanged(Context context, int reason, bool isSafe);
     }
     public class DevicePolicyManager : Object {
+        public const NearbyStreaming NearbyStreamingDisabled = NearbyStreaming.Disabled;
+        public const NearbyStreaming NearbyStreamingEnabled = NearbyStreaming.Enabled;
+        public const NearbyStreaming NearbyStreamingNotControlledByPolicy = NearbyStreaming.NotControlledByPolicy;
+        public const NearbyStreaming NearbyStreamingSameManagedAccountOnly = NearbyStreaming.SameManagedAccountOnly;
+        public const OperationSafetyReason OperationSafetyReasonDrivingDistraction = OperationSafetyReason.DrivingDistraction;
+        public const int ProvisioningModeManagedProfileOnPersonalDevice = 3;
+        public const string DelegationSecurityLogging = "delegation-security-logging";
+        public const string ExtraDevicePasswordRequirementOnly = "android.app.extra.DEVICE_PASSWORD_REQUIREMENT_ONLY";
+        public const string ExtraProvisioningAllowedProvisioningModes = "android.app.extra.PROVISIONING_ALLOWED_PROVISIONING_MODES";
+        public const string ExtraProvisioningSensorsPermissionGrantOptOut = "android.app.extra.PROVISIONING_SENSORS_PERMISSION_GRANT_OPT_OUT";
+        public virtual string EnrollmentSpecificId { get; }
+        public virtual bool IsActivePasswordSufficientForDeviceRequirement { get; }
+        public virtual bool IsComplianceAcknowledgementRequired { get; }
+        public virtual int NearbyAppStreamingPolicy { get; set; }
+        public virtual int NearbyNotificationStreamingPolicy { get; set; }
+        public virtual bool PreferentialNetworkServiceEnabled { get; set; }
+        public virtual int RequiredPasswordComplexity { get; set; }
+        public virtual bool UsbDataSignalingEnabled { get; set; }
+        public virtual void AcknowledgeDeviceCompliant();
+        public virtual bool CanAdminGrantSensorsPermissions();
+        public virtual bool CanUsbDataSignalingBeDisabled();
+        public virtual IDictionary<Integer, ICollection<string>> GetKeyPairGrants(string alias);
+        public virtual bool GrantKeyPairToWifiAuth(string alias);
+        public virtual bool HasKeyPair(string alias);
+        public virtual bool IsKeyPairGrantedToWifiAuth(string alias);
+        public virtual bool IsSafeOperation(int reason);
+        public virtual IList<UserHandle> ListForegroundAffiliatedUsers();
+        public virtual bool RevokeKeyPairFromWifiAuth(string alias);
-        public virtual void SetAlwaysOnVpnPackage(ComponentName admin, string? vpnPackage, bool lockdownEnabled, ICollection<string>? lockdownWhitelist);
+        public virtual void SetAlwaysOnVpnPackage(ComponentName admin, string? vpnPackage, bool lockdownEnabled, ICollection<string>? lockdownAllowlist);
+        public virtual void SetOrganizationId(string enterpriseId);
     }
+    public enum NearbyStreaming {
+        Disabled = 1,
+        Enabled = 2,
+        NotControlledByPolicy = 0,
+        SameManagedAccountOnly = 3,
+    }
+    public enum OperationSafetyReason {
+        DrivingDistraction = 1,
+        None = 0,
+    }
     public class SecurityLog : Object {
+        public const SecurityLogTags TagPasswordComplexityRequired = SecurityLogTags.PasswordComplexityRequired;
     }
     public enum SecurityLogTags {
+        PasswordComplexityRequired = 210035,
     }
+    public sealed class UnsafeStateException : IllegalStateException, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<Integer> Reasons { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
 }

Android.App.AppSearch

+namespace Android.App.AppSearch {
+    public sealed class AppSearchBatchResult : Object {
+        public IDictionary All { get; }
+        public IDictionary Failures { get; }
+        public bool IsSuccess { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IDictionary Successes { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public AppSearchBatchResult Build();
+            public AppSearchBatchResult.Builder SetFailure(Object key, int resultCode, string? errorMessage);
+            public AppSearchBatchResult.Builder SetResult(Object key, AppSearchResult result);
+            public AppSearchBatchResult.Builder SetSuccess(Object key, Object? value);
+        }
+    }
+    public class AppSearchManager : Object {
+        protected AppSearchManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void CreateGlobalSearchSession(IExecutor executor, IConsumer callback);
+        public virtual void CreateSearchSession(AppSearchManager.SearchContext searchContext, IExecutor executor, IConsumer callback);
+        public sealed class SearchContext : Object {
+            public string DatabaseName { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public sealed class Builder : Object {
+                public Builder(string databaseName);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AppSearchManager.SearchContext Build();
+            }
+        }
+    }
+    public sealed class AppSearchResult : Object {
+        public const AppSearchResultCode ResultInternalError = AppSearchResultCode.InternalError;
+        public const AppSearchResultCode ResultInvalidArgument = AppSearchResultCode.InvalidArgument;
+        public const AppSearchResultCode ResultInvalidSchema = AppSearchResultCode.InvalidSchema;
+        public const AppSearchResultCode ResultIoError = AppSearchResultCode.IoError;
+        public const AppSearchResultCode ResultNotFound = AppSearchResultCode.NotFound;
+        public const AppSearchResultCode ResultOk = AppSearchResultCode.Ok;
+        public const AppSearchResultCode ResultOutOfSpace = AppSearchResultCode.OutOfSpace;
+        public const AppSearchResultCode ResultSecurityError = AppSearchResultCode.SecurityError;
+        public const AppSearchResultCode ResultUnknownError = AppSearchResultCode.UnknownError;
+        public string? ErrorMessage { get; }
+        public bool IsSuccess { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int ResultCode { get; }
+        public Object? ResultValue { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static AppSearchResult NewFailedResult(int resultCode, string? errorMessage);
+        public static AppSearchResult NewSuccessfulResult(Object? value);
+    }
+    public enum AppSearchResultCode {
+        InternalError = 2,
+        InvalidArgument = 3,
+        InvalidSchema = 7,
+        IoError = 4,
+        NotFound = 6,
+        Ok = 0,
+        OutOfSpace = 5,
+        SecurityError = 8,
+        UnknownError = 1,
+    }
+    public sealed class AppSearchSchema : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<AppSearchSchema.PropertyConfig> Properties { get; }
+        public string SchemaType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class BooleanPropertyConfig : AppSearchSchema.PropertyConfig {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public sealed class Builder : Object {
+                public Builder(string propertyName);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AppSearchSchema.BooleanPropertyConfig Build();
+                public AppSearchSchema.BooleanPropertyConfig.Builder SetCardinality(int cardinality);
+            }
+        }
+        public sealed class Builder : Object {
+            public Builder(string schemaType);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public AppSearchSchema.Builder AddProperty(AppSearchSchema.PropertyConfig propertyConfig);
+            public AppSearchSchema Build();
+        }
+        public sealed class BytesPropertyConfig : AppSearchSchema.PropertyConfig {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public sealed class Builder : Object {
+                public Builder(string propertyName);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AppSearchSchema.BytesPropertyConfig Build();
+                public AppSearchSchema.BytesPropertyConfig.Builder SetCardinality(int cardinality);
+            }
+        }
+        public sealed class DocumentPropertyConfig : AppSearchSchema.PropertyConfig {
+            public override JniPeerMembers JniPeerMembers { get; }
+            public string SchemaType { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public bool ShouldIndexNestedProperties();
+            public sealed class Builder : Object {
+                public Builder(string propertyName, string schemaType);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AppSearchSchema.DocumentPropertyConfig Build();
+                public AppSearchSchema.DocumentPropertyConfig.Builder SetCardinality(int cardinality);
+                public AppSearchSchema.DocumentPropertyConfig.Builder SetShouldIndexNestedProperties(bool indexNestedProperties);
+            }
+        }
+        public sealed class DoublePropertyConfig : AppSearchSchema.PropertyConfig {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public sealed class Builder : Object {
+                public Builder(string propertyName);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AppSearchSchema.DoublePropertyConfig Build();
+                public AppSearchSchema.DoublePropertyConfig.Builder SetCardinality(int cardinality);
+            }
+        }
+        public sealed class LongPropertyConfig : AppSearchSchema.PropertyConfig {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public sealed class Builder : Object {
+                public Builder(string propertyName);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AppSearchSchema.LongPropertyConfig Build();
+                public AppSearchSchema.LongPropertyConfig.Builder SetCardinality(int cardinality);
+            }
+        }
+        public abstract class PropertyConfig : Object {
+            public const Cardinality CardinalityOptional = Cardinality.Optional;
+            public const Cardinality CardinalityRepeated = Cardinality.Repeated;
+            public const Cardinality CardinalityRequired = Cardinality.Required;
+            protected PropertyConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual int Cardinality { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual string Name { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class StringPropertyConfig : AppSearchSchema.PropertyConfig {
+            public const IndexingType IndexingTypeExactTerms = IndexingType.ExactTerms;
+            public const IndexingType IndexingTypeNone = IndexingType.None;
+            public const IndexingType IndexingTypePrefixes = IndexingType.Prefixes;
+            public const TokenizerType TokenizerTypeNone = TokenizerType.None;
+            public const TokenizerType TokenizerTypePlain = TokenizerType.Plain;
+            public int IndexingType { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public int TokenizerType { get; }
+            public sealed class Builder : Object {
+                public Builder(string propertyName);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public AppSearchSchema.StringPropertyConfig Build();
+                public AppSearchSchema.StringPropertyConfig.Builder SetCardinality(int cardinality);
+                public AppSearchSchema.StringPropertyConfig.Builder SetIndexingType(int indexingType);
+                public AppSearchSchema.StringPropertyConfig.Builder SetTokenizerType(int tokenizerType);
+            }
+        }
+    }
+    public sealed class AppSearchSession : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+        public void GetByDocumentId(GetByDocumentIdRequest request, IExecutor executor, IBatchResultCallback callback);
+        public void GetNamespaces(IExecutor executor, IConsumer callback);
+        public void GetSchema(IExecutor executor, IConsumer callback);
+        public void GetStorageInfo(IExecutor executor, IConsumer callback);
+        public void Put(PutDocumentsRequest request, IExecutor executor, IBatchResultCallback callback);
+        public void Remove(RemoveByDocumentIdRequest request, IExecutor executor, IBatchResultCallback callback);
+        public void Remove(string queryExpression, SearchSpec searchSpec, IExecutor executor, IConsumer callback);
+        public void ReportUsage(ReportUsageRequest request, IExecutor executor, IConsumer callback);
+        public SearchResults Search(string queryExpression, SearchSpec searchSpec);
+        public void SetSchema(SetSchemaRequest request, IExecutor workExecutor, IExecutor callbackExecutor, IConsumer callback);
+    }
+    public enum Cardinality {
+        Optional = 2,
+        Repeated = 1,
+        Required = 3,
+    }
+    public class GenericDocument : Object {
+        protected GenericDocument(GenericDocument document);
+        protected GenericDocument(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual long CreationTimestampMillis { get; }
+        public virtual string Id { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public static int MaxIndexedProperties { get; }
+        public virtual string Namespace { get; }
+        public virtual ICollection<string> PropertyNames { get; }
+        public virtual string SchemaType { get; }
+        public virtual int Score { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual long TtlMillis { get; }
+        public virtual Object? GetProperty(string path);
+        public virtual bool GetPropertyBoolean(string path);
+        public virtual bool[]? GetPropertyBooleanArray(string path);
+        public virtual byte[]? GetPropertyBytes(string path);
+        public virtual byte[][]? GetPropertyBytesArray(string path);
+        public virtual GenericDocument? GetPropertyDocument(string path);
+        public virtual GenericDocument[]? GetPropertyDocumentArray(string path);
+        public virtual double GetPropertyDouble(string path);
+        public virtual double[]? GetPropertyDoubleArray(string path);
+        public virtual long GetPropertyLong(string path);
+        public virtual long[]? GetPropertyLongArray(string path);
+        public virtual string? GetPropertyString(string path);
+        public virtual string[]? GetPropertyStringArray(string path);
+        public class Builder : Object {
+            protected Builder(IntPtr javaReference, JniHandleOwnership transfer);
+            public Builder(string @namespace, string id, string schemaType);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual GenericDocument Build();
+            public virtual Object SetCreationTimestampMillis(long creationTimestampMillis);
+            public virtual Object SetPropertyBoolean(string name, params bool[] values);
+            public virtual Object SetPropertyBytes(string name, params byte[][] values);
+            public virtual Object SetPropertyDocument(string name, params GenericDocument[] values);
+            public virtual Object SetPropertyDouble(string name, params double[] values);
+            public virtual Object SetPropertyLong(string name, params long[] values);
+            public virtual Object SetPropertyString(string name, params string[] values);
+            public virtual Object SetScore(int score);
+            public virtual Object SetTtlMillis(long ttlMillis);
+        }
+    }
+    public sealed class GetByDocumentIdRequest : Object {
+        public const string ProjectionSchemaTypeWildcard = "*";
+        public ICollection<string> Ids { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Namespace { get; }
+        public IDictionary<string, IList<string>> Projections { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder(string @namespace);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public GetByDocumentIdRequest.Builder AddIds(ICollection<string> ids);
+            public GetByDocumentIdRequest.Builder AddIds(params string[] ids);
+            public GetByDocumentIdRequest.Builder AddProjection(string schemaType, ICollection<string> propertyPaths);
+            public GetByDocumentIdRequest Build();
+        }
+    }
+    public sealed class GetSchemaResponse : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<AppSearchSchema> Schemas { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Version { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public GetSchemaResponse.Builder AddSchema(AppSearchSchema schema);
+            public GetSchemaResponse Build();
+            public GetSchemaResponse.Builder SetVersion(int version);
+        }
+    }
+    public class GlobalSearchSession : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        protected GlobalSearchSession(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void Close();
+        public virtual void ReportSystemUsage(ReportSystemUsageRequest request, IExecutor executor, IConsumer callback);
+        public virtual SearchResults Search(string queryExpression, SearchSpec searchSpec);
+    }
+    public enum GroupingType {
+        None = 0,
+        PerNamespace = 2,
+        PerPackage = 1,
+    }
+    public interface IBatchResultCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnResult(AppSearchBatchResult result);
+        void OnSystemError(Throwable? throwable);
+    }
+    public enum IndexingType {
+        ExactTerms = 1,
+        None = 0,
+        Prefixes = 2,
+    }
+    public abstract class Migrator : Object {
+        public Migrator();
+        protected Migrator(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public abstract GenericDocument OnDowngrade(int currentVersion, int finalVersion, GenericDocument document);
+        public abstract GenericDocument OnUpgrade(int currentVersion, int finalVersion, GenericDocument document);
+        public abstract bool ShouldMigrate(int currentVersion, int finalVersion);
+    }
+    public class PackageIdentifier : Object {
+        protected PackageIdentifier(IntPtr javaReference, JniHandleOwnership transfer);
+        public PackageIdentifier(string packageName, byte[] sha256Certificate);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual string PackageName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual byte[] GetSha256Certificate();
+    }
+    public sealed class PutDocumentsRequest : Object {
+        public IList<GenericDocument> GenericDocuments { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public PutDocumentsRequest.Builder AddGenericDocuments(params GenericDocument[] documents);
+            public PutDocumentsRequest.Builder AddGenericDocuments(ICollection<GenericDocument> documents);
+            public PutDocumentsRequest Build();
+        }
+    }
+    public enum RankingStrategy {
+        CreationTimestamp = 2,
+        DocumentScore = 1,
+        None = 0,
+        RelevanceScore = 3,
+        SystemUsageCount = 6,
+        SystemUsageLastUsedTimestamp = 7,
+        UsageCount = 4,
+        UsageLastUsedTimestamp = 5,
+    }
+    public sealed class RemoveByDocumentIdRequest : Object {
+        public ICollection<string> Ids { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Namespace { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder(string @namespace);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public RemoveByDocumentIdRequest.Builder AddIds(ICollection<string> ids);
+            public RemoveByDocumentIdRequest.Builder AddIds(params string[] ids);
+            public RemoveByDocumentIdRequest Build();
+        }
+    }
+    public sealed class ReportSystemUsageRequest : Object {
+        public string DatabaseName { get; }
+        public string DocumentId { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Namespace { get; }
+        public string PackageName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public long UsageTimestampMillis { get; }
+        public sealed class Builder : Object {
+            public Builder(string packageName, string databaseName, string @namespace, string documentId);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ReportSystemUsageRequest Build();
+            public ReportSystemUsageRequest.Builder SetUsageTimestampMillis(long usageTimestampMillis);
+        }
+    }
+    public sealed class ReportUsageRequest : Object {
+        public string DocumentId { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Namespace { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public long UsageTimestampMillis { get; }
+        public sealed class Builder : Object {
+            public Builder(string @namespace, string documentId);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ReportUsageRequest Build();
+            public ReportUsageRequest.Builder SetUsageTimestampMillis(long usageTimestampMillis);
+        }
+    }
+    public enum SearchOrder {
+        Ascending = 1,
+        Descending = 0,
+    }
+    public sealed class SearchResult : Object {
+        public string DatabaseName { get; }
+        public GenericDocument GenericDocument { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<SearchResult.MatchInfo> MatchInfos { get; }
+        public string PackageName { get; }
+        public double RankingSignal { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder(string packageName, string databaseName);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public SearchResult.Builder AddMatchInfo(SearchResult.MatchInfo matchInfo);
+            public SearchResult Build();
+            public SearchResult.Builder SetGenericDocument(GenericDocument document);
+            public SearchResult.Builder SetRankingSignal(double rankingSignal);
+        }
+        public sealed class MatchInfo : Object {
+            public string? ExactMatch { get; }
+            public ICharSequence ExactMatchFormatted { get; }
+            public SearchResult.MatchRange ExactMatchRange { get; }
+            public string FullText { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public string PropertyPath { get; }
+            public string? Snippet { get; }
+            public ICharSequence SnippetFormatted { get; }
+            public SearchResult.MatchRange SnippetRange { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public sealed class Builder : Object {
+                public Builder(string propertyPath);
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public SearchResult.MatchInfo Build();
+                public SearchResult.MatchInfo.Builder SetExactMatchRange(SearchResult.MatchRange matchRange);
+                public SearchResult.MatchInfo.Builder SetSnippetRange(SearchResult.MatchRange matchRange);
+            }
+        }
+        public sealed class MatchRange : Object {
+            public MatchRange(int start, int end);
+            public int End { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public int Start { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+    }
+    public class SearchResults : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+        protected SearchResults(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void Close();
+        public virtual void GetNextPage(IExecutor executor, IConsumer callback);
+    }
+    public sealed class SearchSpec : Object {
+        public const GroupingType GroupingTypePerNamespace = GroupingType.PerNamespace;
+        public const GroupingType GroupingTypePerPackage = GroupingType.PerPackage;
+        public const RankingStrategy RankingStrategyCreationTimestamp = RankingStrategy.CreationTimestamp;
+        public const RankingStrategy RankingStrategyDocumentScore = RankingStrategy.DocumentScore;
+        public const RankingStrategy RankingStrategyNone = RankingStrategy.None;
+        public const RankingStrategy RankingStrategyRelevanceScore = RankingStrategy.RelevanceScore;
+        public const RankingStrategy RankingStrategySystemUsageCount = RankingStrategy.SystemUsageCount;
+        public const RankingStrategy RankingStrategySystemUsageLastUsedTimestamp = RankingStrategy.SystemUsageLastUsedTimestamp;
+        public const RankingStrategy RankingStrategyUsageCount = RankingStrategy.UsageCount;
+        public const RankingStrategy RankingStrategyUsageLastUsedTimestamp = RankingStrategy.UsageLastUsedTimestamp;
+        public const SearchOrder OrderAscending = SearchOrder.Ascending;
+        public const SearchOrder OrderDescending = SearchOrder.Descending;
+        public const SearchTermMatch TermMatchExactOnly = SearchTermMatch.ExactOnly;
+        public const SearchTermMatch TermMatchPrefix = SearchTermMatch.Prefix;
+        public const string ProjectionSchemaTypeWildcard = "*";
+        public IList<string> FilterNamespaces { get; }
+        public IList<string> FilterPackageNames { get; }
+        public IList<string> FilterSchemas { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int MaxSnippetSize { get; }
+        public int Order { get; }
+        public IDictionary<string, IList<string>> Projections { get; }
+        public int RankingStrategy { get; }
+        public int ResultCountPerPage { get; }
+        public int ResultGroupingLimit { get; }
+        public int ResultGroupingTypeFlags { get; }
+        public int SnippetCount { get; }
+        public int SnippetCountPerProperty { get; }
+        public int TermMatch { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public SearchSpec.Builder AddFilterNamespaces(ICollection<string> namespaces);
+            public SearchSpec.Builder AddFilterNamespaces(params string[] namespaces);
+            public SearchSpec.Builder AddFilterPackageNames(ICollection<string> packageNames);
+            public SearchSpec.Builder AddFilterPackageNames(params string[] packageNames);
+            public SearchSpec.Builder AddFilterSchemas(ICollection<string> schemas);
+            public SearchSpec.Builder AddFilterSchemas(params string[] schemas);
+            public SearchSpec.Builder AddProjection(string schema, ICollection<string> propertyPaths);
+            public SearchSpec Build();
+            public SearchSpec.Builder SetMaxSnippetSize(int maxSnippetSize);
+            public SearchSpec.Builder SetOrder(int order);
+            public SearchSpec.Builder SetRankingStrategy(int rankingStrategy);
+            public SearchSpec.Builder SetResultCountPerPage(int resultCountPerPage);
+            public SearchSpec.Builder SetResultGrouping(int groupingTypeFlags, int limit);
+            public SearchSpec.Builder SetSnippetCount(int snippetCount);
+            public SearchSpec.Builder SetSnippetCountPerProperty(int snippetCountPerProperty);
+            public SearchSpec.Builder SetTermMatch(int termMatchType);
+        }
+    }
+    public enum SearchTermMatch {
+        ExactOnly = 1,
+        Prefix = 2,
+    }
+    public sealed class SetSchemaRequest : Object {
+        public bool IsForceOverride { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IDictionary<string, Migrator> Migrators { get; }
+        public ICollection<AppSearchSchema> Schemas { get; }
+        public ICollection<string> SchemasNotDisplayedBySystem { get; }
+        public IDictionary<string, ICollection<PackageIdentifier>> SchemasVisibleToPackages { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Version { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public SetSchemaRequest.Builder AddSchemas(params AppSearchSchema[] schemas);
+            public SetSchemaRequest.Builder AddSchemas(ICollection<AppSearchSchema> schemas);
+            public SetSchemaRequest Build();
+            public SetSchemaRequest.Builder SetForceOverride(bool forceOverride);
+            public SetSchemaRequest.Builder SetMigrator(string schemaType, Migrator migrator);
+            public SetSchemaRequest.Builder SetMigrators(IDictionary<string, Migrator> migrators);
+            public SetSchemaRequest.Builder SetSchemaTypeDisplayedBySystem(string schemaType, bool displayed);
+            public SetSchemaRequest.Builder SetSchemaTypeVisibilityForPackage(string schemaType, bool visible, PackageIdentifier packageIdentifier);
+            public SetSchemaRequest.Builder SetVersion(int version);
+        }
+    }
+    public class SetSchemaResponse : Object {
+        protected SetSchemaResponse(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual ICollection<string> DeletedTypes { get; }
+        public virtual ICollection<string> IncompatibleTypes { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual ICollection<string> MigratedTypes { get; }
+        public virtual IList<SetSchemaResponse.MigrationFailure> MigrationFailures { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public SetSchemaResponse.Builder AddDeletedType(string deletedType);
+            public SetSchemaResponse.Builder AddDeletedTypes(ICollection<string> deletedTypes);
+            public SetSchemaResponse.Builder AddIncompatibleType(string incompatibleType);
+            public SetSchemaResponse.Builder AddIncompatibleTypes(ICollection<string> incompatibleTypes);
+            public SetSchemaResponse.Builder AddMigratedType(string migratedType);
+            public SetSchemaResponse.Builder AddMigratedTypes(ICollection<string> migratedTypes);
+            public SetSchemaResponse.Builder AddMigrationFailure(SetSchemaResponse.MigrationFailure migrationFailure);
+            public SetSchemaResponse.Builder AddMigrationFailures(ICollection<SetSchemaResponse.MigrationFailure> migrationFailures);
+            public SetSchemaResponse Build();
+        }
+        public class MigrationFailure : Object {
+            protected MigrationFailure(IntPtr javaReference, JniHandleOwnership transfer);
+            public MigrationFailure(string @namespace, string documentId, string schemaType, AppSearchResult failedResult);
+            public virtual AppSearchResult AppSearchResult { get; }
+            public virtual string DocumentId { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual string Namespace { get; }
+            public virtual string SchemaType { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+    }
+    public class StorageInfo : Object {
+        protected StorageInfo(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual int AliveDocumentsCount { get; }
+        public virtual int AliveNamespacesCount { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual long SizeBytes { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public StorageInfo Build();
+            public StorageInfo.Builder SetAliveDocumentsCount(int aliveDocumentsCount);
+            public StorageInfo.Builder SetAliveNamespacesCount(int aliveNamespacesCount);
+            public StorageInfo.Builder SetSizeBytes(long sizeBytes);
+        }
+    }
+    public enum TokenizerType {
+        None = 0,
+        Plain = 1,
+    }
+}

Android.App.AppSearch.Exceptions

+namespace Android.App.AppSearch.Exceptions {
+    public class AppSearchException : Exception {
+        public AppSearchException(int resultCode);
+        public AppSearchException(int resultCode, string? message);
+        public AppSearchException(int resultCode, string? message, Throwable? cause);
+        protected AppSearchException(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int ResultCode { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual AppSearchResult ToAppSearchResult();
+    }
+}

Android.App.Assist

 namespace Android.App.Assist {
     public class AssistStructure : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class ViewNode : Object {
+            public virtual string[]? GetReceiveContentMimeTypes();
         }
     }
 }

Android.App.Job

 namespace Android.App.Job {
     public class JobInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual bool IsExpedited { get; }
         public sealed class Builder : Object {
+            public JobInfo.Builder SetExpedited(bool expedited);
         }
     }
     public class JobParameters : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const StopReason StopReasonAppStandby = StopReason.AppStandby;
+        public const StopReason StopReasonBackgroundRestriction = StopReason.BackgroundRestriction;
+        public const StopReason StopReasonCancelledByApp = StopReason.CancelledByApp;
+        public const StopReason StopReasonConstraintBatteryNotLow = StopReason.ConstraintBatteryNotLow;
+        public const StopReason StopReasonConstraintCharging = StopReason.ConstraintCharging;
+        public const StopReason StopReasonConstraintConnectivity = StopReason.ConstraintConnectivity;
+        public const StopReason StopReasonConstraintDeviceIdle = StopReason.ConstraintDeviceIdle;
+        public const StopReason StopReasonConstraintStorageNotLow = StopReason.ConstraintStorageNotLow;
+        public const StopReason StopReasonDeviceState = StopReason.DeviceState;
+        public const StopReason StopReasonPreempt = StopReason.Preempt;
+        public const StopReason StopReasonQuota = StopReason.Quota;
+        public const StopReason StopReasonSystemProcessing = StopReason.SystemProcessing;
+        public const StopReason StopReasonTimeout = StopReason.Timeout;
+        public const StopReason StopReasonUndefined = StopReason.Undefined;
+        public const StopReason StopReasonUser = StopReason.User;
+        public virtual bool IsExpeditedJob { get; }
+        public virtual int StopReason { get; }
     }
+    public enum StopReason {
+        AppStandby = 12,
+        BackgroundRestriction = 11,
+        CancelledByApp = 1,
+        ConstraintBatteryNotLow = 5,
+        ConstraintCharging = 6,
+        ConstraintConnectivity = 7,
+        ConstraintDeviceIdle = 8,
+        ConstraintStorageNotLow = 9,
+        DeviceState = 4,
+        Preempt = 2,
+        Quota = 10,
+        SystemProcessing = 14,
+        Timeout = 3,
+        Undefined = 0,
+        User = 13,
+    }
 }

Android.App.People

+namespace Android.App.People {
+    public enum ConversationActivity {
+        Anniversary = 2,
+        Audio = 4,
+        Birthday = 1,
+        Game = 6,
+        Location = 7,
+        NewStory = 3,
+        Other = 0,
+        UpcomingBirthday = 8,
+        Video = 5,
+    }
+    public enum ConversationAvailability {
+        Available = 0,
+        Busy = 1,
+        Offline = 2,
+        Unknown = -1,
+    }
+    public sealed class ConversationStatus : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ConversationActivity ActivityAnniversary = ConversationActivity.Anniversary;
+        public const ConversationActivity ActivityAudio = ConversationActivity.Audio;
+        public const ConversationActivity ActivityBirthday = ConversationActivity.Birthday;
+        public const ConversationActivity ActivityGame = ConversationActivity.Game;
+        public const ConversationActivity ActivityLocation = ConversationActivity.Location;
+        public const ConversationActivity ActivityNewStory = ConversationActivity.NewStory;
+        public const ConversationActivity ActivityOther = ConversationActivity.Other;
+        public const ConversationActivity ActivityUpcomingBirthday = ConversationActivity.UpcomingBirthday;
+        public const ConversationActivity ActivityVideo = ConversationActivity.Video;
+        public const ConversationAvailability AvailabilityAvailable = ConversationAvailability.Available;
+        public const ConversationAvailability AvailabilityBusy = ConversationAvailability.Busy;
+        public const ConversationAvailability AvailabilityOffline = ConversationAvailability.Offline;
+        public const ConversationAvailability AvailabilityUnknown = ConversationAvailability.Unknown;
+        public int Activity { get; }
+        public int Availability { get; }
+        public static IParcelableCreator Creator { get; }
+        public string? Description { get; }
+        public ICharSequence? DescriptionFormatted { get; }
+        public long EndTimeMillis { get; }
+        public Icon? Icon { get; }
+        public string Id { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public long StartTimeMillis { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(string id, int activity);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ConversationStatus Build();
+            public ConversationStatus.Builder SetAvailability(int availability);
+            public ConversationStatus.Builder SetDescription(ICharSequence? description);
+            public ConversationStatus.Builder SetDescription(string? description);
+            public ConversationStatus.Builder SetEndTimeMillis(long endTimeMs);
+            public ConversationStatus.Builder SetIcon(Icon? icon);
+            public ConversationStatus.Builder SetStartTimeMillis(long startTimeMs);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class PeopleManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void AddOrUpdateStatus(string conversationId, ConversationStatus status);
+        public void ClearStatus(string conversationId, string statusId);
+        public void ClearStatuses(string conversationId);
+        public IList<ConversationStatus> GetStatuses(string conversationId);
+    }
+}

Android.App.Usage

 namespace Android.App.Usage {
     public sealed class StorageStats : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public long ExternalCacheBytes { get; }
     }
 }

Android.Appwidget

 namespace Android.Appwidget {
     public class AppWidgetHostView : FrameLayout {
+        public virtual void ResetColorResources();
+        public virtual void SetColorResources(SparseIntArray colorMapping);
+        public virtual void UpdateAppWidgetSize(Bundle newOptions, IList<SizeF> sizes);
     }
     public class AppWidgetManager : Object {
+        public const string OptionAppwidgetSizes = "appWidgetSizes";
     }
     public class AppWidgetProviderInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WidgetFeatures WidgetFeatureConfigurationOptional = WidgetFeatures.ConfigurationOptional;
+        public virtual ActivityInfo ActivityInfo { get; }
+        public int DescriptionRes { get; set; }
+        public int MaxResizeHeight { get; set; }
+        public int MaxResizeWidth { get; set; }
+        public int PreviewLayout { get; set; }
+        public int TargetCellHeight { get; set; }
+        public int TargetCellWidth { get; set; }
+        public string? LoadDescription(Context context);
+        public ICharSequence? LoadDescriptionFormatted(Context context);
     }
     public enum WidgetFeatures {
+        ConfigurationOptional = 4,
     }
 }

Android.Bluetooth

 namespace Android.Bluetooth {
+    public enum AddressType {
+        Public = 0,
+        Random = 1,
+    }
     public sealed class BluetoothDevice : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const AddressType AddressTypePublic = AddressType.Public;
+        public const AddressType AddressTypeRandom = AddressType.Random;
+        public BluetoothGatt? ConnectGatt(Context? context, bool autoConnect, BluetoothGattCallback? callback, BluetoothTransports transport, BluetoothPhy phy);
+        public BluetoothGatt? ConnectGatt(Context? context, bool autoConnect, BluetoothGattCallback? callback, BluetoothTransports transport, BluetoothPhy phy, Handler? handler);
+        public int SetAlias(string? alias);
     }
     public abstract class BluetoothGattCallback : Object {
+        public virtual void OnServiceChanged(BluetoothGatt gatt);
     }
     public sealed class BluetoothHeadset : Object, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
+        public bool IsNoiseReductionSupported(BluetoothDevice device);
+        public bool IsVoiceRecognitionSupported(BluetoothDevice device);
     }
+    public sealed class BluetoothLeAudio : Object, IAutoCloseable, IBluetoothProfile, IDisposable, IJavaObject, IJavaPeerable {
+        public const string ActionLeAudioConnectionStateChanged = "android.bluetooth.action.LE_AUDIO_CONNECTION_STATE_CHANGED";
+        public IList<BluetoothDevice> ConnectedDevices { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+        public ProfileState GetConnectionState(BluetoothDevice device);
+        public IList<BluetoothDevice> GetDevicesMatchingConnectionStates(ProfileState[] states);
+        public static class InterfaceConsts {
+            public const int HearingAid = 21;
+            public const string ExtraPreviousState = "android.bluetooth.profile.extra.PREVIOUS_STATE";
+            public const string ExtraState = "android.bluetooth.profile.extra.STATE";
+        }
+    }
+    public sealed class BluetoothStatusCodes : Object {
+        public const CurrentBluetoothStatusCodes ErrorBluetoothNotAllowed = CurrentBluetoothStatusCodes.ErrorBluetoothNotAllowed;
+        public const CurrentBluetoothStatusCodes ErrorBluetoothNotEnabled = CurrentBluetoothStatusCodes.ErrorBluetoothNotEnabled;
+        public const CurrentBluetoothStatusCodes ErrorDeviceNotBonded = CurrentBluetoothStatusCodes.ErrorDeviceNotBonded;
+        public const CurrentBluetoothStatusCodes ErrorMissingBluetoothConnectPermission = CurrentBluetoothStatusCodes.ErrorMissingBluetoothConnectPermission;
+        public const CurrentBluetoothStatusCodes ErrorUnknown = CurrentBluetoothStatusCodes.ErrorUnknown;
+        public const CurrentBluetoothStatusCodes Success = CurrentBluetoothStatusCodes.Success;
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum CurrentBluetoothStatusCodes {
+        ErrorBluetoothNotAllowed = 2,
+        ErrorBluetoothNotEnabled = 1,
+        ErrorDeviceNotBonded = 3,
+        ErrorMissingBluetoothConnectPermission = 6,
+        ErrorUnknown = 2147483647,
+        Success = 0,
+    }
 }

Android.Bluetooth.LE

 namespace Android.Bluetooth.LE {
     public sealed class AdvertiseData : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IList<ParcelUuid> ServiceSolicitationUuids { get; }
         public sealed class Builder : Object {
-            public AdvertiseData.Builder AddManufacturerData(int manufacturerId, byte[] manufacturerSpecificData);
+            public AdvertiseData.Builder? AddManufacturerData(int manufacturerId, byte[]? manufacturerSpecificData);
-            public AdvertiseData.Builder AddServiceData(ParcelUuid serviceDataUuid, byte[] serviceData);
+            public AdvertiseData.Builder? AddServiceData(ParcelUuid? serviceDataUuid, byte[]? serviceData);
+            public AdvertiseData.Builder AddServiceSolicitationUuid(ParcelUuid serviceSolicitationUuid);
-            public AdvertiseData.Builder AddServiceUuid(ParcelUuid serviceUuid);
+            public AdvertiseData.Builder? AddServiceUuid(ParcelUuid? serviceUuid);
-            public AdvertiseData Build();
+            public AdvertiseData? Build();
-            public AdvertiseData.Builder SetIncludeDeviceName(bool includeDeviceName);
+            public AdvertiseData.Builder? SetIncludeDeviceName(bool includeDeviceName);
-            public AdvertiseData.Builder SetIncludeTxPowerLevel(bool includeTxPowerLevel);
+            public AdvertiseData.Builder? SetIncludeTxPowerLevel(bool includeTxPowerLevel);
         }
     }
     public sealed class AdvertisingSetParameters : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Builder : Object {
+            public AdvertisingSetParameters.Builder SetPrimaryPhy(BluetoothPhy primaryPhy);
+            public AdvertisingSetParameters.Builder SetSecondaryPhy(BluetoothPhy secondaryPhy);
         }
     }
 }

Android.Companion

 namespace Android.Companion {
     public sealed class AssociationRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string DeviceProfileWatch = "android.app.role.COMPANION_DEVICE_WATCH";
-        public void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
         public sealed class Builder : Object {
+            public AssociationRequest.Builder SetDeviceProfile(string deviceProfile);
         }
     }
     public sealed class CompanionDeviceManager : Object {
+        public void StartObservingDevicePresence(string deviceAddress);
+        public void StopObservingDevicePresence(string deviceAddress);
     }
+    public abstract class CompanionDeviceService : Service {
+        public const string ServiceInterface = "android.companion.CompanionDeviceService";
+        public CompanionDeviceService();
+        protected CompanionDeviceService(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed override IBinder? OnBind(Intent intent);
+        public abstract void OnDeviceAppeared(string address);
+        public abstract void OnDeviceDisappeared(string address);
+    }
+    public class DeviceNotAssociatedException : RuntimeException {
+        protected DeviceNotAssociatedException(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
 }

Android.Content

 namespace Android.Content {
+    public sealed class AttributionSource : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public string? AttributionTag { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public AttributionSource? Next { get; }
+        public string? PackageName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Uid { get; }
+        public bool CheckCallingUid();
+        public int DescribeContents();
+        public void EnforceCallingUid();
+        public bool IsTrusted(Context context);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(int uid);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public AttributionSource Build();
+            public AttributionSource.Builder SetAttributionTag(string? value);
+            public AttributionSource.Builder SetNext(AttributionSource? value);
+            public AttributionSource.Builder SetPackageName(string? value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class ClipData : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class Item : Object {
+            public virtual TextLinks TextLinks { get; }
         }
     }
     public class ClipDescription : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ClipDescriptionClassification ClassificationComplete = ClipDescriptionClassification.Complete;
+        public const ClipDescriptionClassification ClassificationNotComplete = ClipDescriptionClassification.NotComplete;
+        public const ClipDescriptionClassification ClassificationNotPerformed = ClipDescriptionClassification.NotPerformed;
+        public virtual int ClassificationStatus { get; }
+        public virtual bool IsStyledText { get; }
+        public virtual float GetConfidenceScore(string entity);
     }
+    public enum ClipDescriptionClassification {
+        Complete = 3,
+        NotComplete = 1,
+        NotPerformed = 2,
+    }
     public abstract class ContentProvider : Object, IComponentCallbacks, IComponentCallbacks2, IDisposable, IJavaObject, IJavaPeerable {
+        public AttributionSource CallingAttributionSource { get; }
     }
     public abstract class ContentResolver : Object {
+        public const string SyncExtrasScheduleAsExpeditedJob = "schedule_as_expedited_job";
     }
     public abstract class Context : Object {
+        public const string AppSearchService = "app_search";
+        public const string BugreportService = "bugreport";
+        public const string DisplayHashService = "display_hash";
+        public const string DomainVerificationService = "domain_verification";
+        public const string GameService = "game";
+        public const string MediaCommunicationService = "media_communication";
+        public const string MediaMetricsService = "media_metrics";
+        public const string PeopleService = "people";
+        public const string PerformanceHintService = "performance_hint";
+        public const string VibratorManagerService = "vibrator_manager";
+        public virtual AttributionSource AttributionSource { get; }
+        public virtual bool IsUiContext { get; }
+        public virtual ContextParams? Params { get; }
+        public virtual int[] CheckCallingOrSelfUriPermissions(IList<Uri> uris, int modeFlags);
+        public virtual int[] CheckCallingUriPermissions(IList<Uri> uris, int modeFlags);
+        public virtual int[] CheckUriPermissions(IList<Uri> uris, int pid, int uid, int modeFlags);
+        public virtual Context CreateContext(ContextParams contextParams);
+        public virtual Context CreateWindowContext(Display display, int type, Bundle? options);
+        public virtual void SendStickyBroadcast(Intent intent, Bundle? options);
     }
+    public sealed class ContextParams : Object {
+        public string? AttributionTag { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public AttributionSource? NextAttributionSource { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(ContextParams @params);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ContextParams Build();
+            public ContextParams.Builder SetAttributionTag(string? attributionTag);
+            public ContextParams.Builder SetNextAttributionSource(AttributionSource? next);
+        }
+    }
     public class Intent : Object, ICloneable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string ActionManageUnusedApps = "android.intent.action.MANAGE_UNUSED_APPS";
+        public const string ActionProfileAccessible = "android.intent.action.PROFILE_ACCESSIBLE";
+        public const string ActionProfileInaccessible = "android.intent.action.PROFILE_INACCESSIBLE";
+        public const string ActionViewPermissionUsageForPeriod = "android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD";
+        public const string ExtraAttributionTags = "android.intent.extra.ATTRIBUTION_TAGS";
+        public const string ExtraEndTime = "android.intent.extra.END_TIME";
+        public const string ExtraPermissionGroupName = "android.intent.extra.PERMISSION_GROUP_NAME";
+        public const string ExtraStartTime = "android.intent.extra.START_TIME";
+        public const string ExtraUserInitiated = "android.intent.extra.USER_INITIATED";
     }
     public class SyncRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class Builder : Object {
+            public virtual SyncRequest.Builder SetScheduleAsExpeditedJob(bool scheduleAsExpeditedJob);
         }
     }
 }

Android.Content.PM

 namespace Android.Content.PM {
     public class ActivityInfo : ComponentInfo, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ConfigChanges ConfigFontWeightAdjustment = ConfigChanges.FontWeightAdjustment;
+        public const LaunchMode LaunchSingleInstancePerTask = LaunchMode.SingleInstancePerTask;
     }
+    public sealed class ApkChecksum : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public Certificate? InstallerCertificate { get; }
+        public string? InstallerPackageName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? SplitName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Type { get; }
+        public int DescribeContents();
+        public byte[] GetValue();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public enum ApplicationCategories {
+        Accessibility = 8,
     }
     public class ApplicationInfo : PackageItemInfo, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ApplicationCategories CategoryAccessibility = ApplicationCategories.Accessibility;
+        public const ApplicationInfoMemtag MemtagAsync = ApplicationInfoMemtag.Async;
+        public const ApplicationInfoMemtag MemtagDefault = ApplicationInfoMemtag.Default;
+        public const ApplicationInfoMemtag MemtagOff = ApplicationInfoMemtag.Off;
+        public const ApplicationInfoMemtag MemtagSync = ApplicationInfoMemtag.Sync;
+        public const ApplicationInfoZeroInit ZeroinitDefault = ApplicationInfoZeroInit.Default;
+        public const ApplicationInfoZeroInit ZeroinitDisabled = ApplicationInfoZeroInit.Disabled;
+        public const ApplicationInfoZeroInit ZeroinitEnabled = ApplicationInfoZeroInit.ZeroinitEnabled;
+        public const RawExternalStorageAccess RawExternalStorageAccessDefault = RawExternalStorageAccess.Default;
+        public const RawExternalStorageAccess RawExternalStorageAccessNotRequested = RawExternalStorageAccess.NotRequested;
+        public const RawExternalStorageAccess RawExternalStorageAccessRequested = RawExternalStorageAccess.Requested;
+        public int CompileSdkVersion { get; set; }
+        public string CompileSdkVersionCodename { get; set; }
+        public virtual bool IsProfileable { get; }
+        public virtual int MemtagMode { get; }
+        public virtual int NativeHeapZeroInitialized { get; }
+        public virtual int RequestRawExternalStorageAccess { get; }
+        public virtual bool AreAttributionsUserVisible();
     }
+    public enum ApplicationInfoMemtag {
+        Async = 1,
+        Default = -1,
+        Off = 0,
+        Sync = 2,
+    }
+    public enum ApplicationInfoZeroInit {
+        Default = -1,
+        Disabled = 0,
+        ZeroinitEnabled = 1,
+    }
+    public sealed class Attribution : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Label { get; }
+        public string Tag { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class Checksum : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ChecksumType TypePartialMerkleRoot1mSha256 = ChecksumType.PartialMerkleRoot1mSha256;
+        public const ChecksumType TypePartialMerkleRoot1mSha512 = ChecksumType.PartialMerkleRoot1mSha512;
+        public const ChecksumType TypeWholeMd5 = ChecksumType.WholeMd5;
+        public const ChecksumType TypeWholeMerkleRoot4kSha256 = ChecksumType.WholeMerkleRoot4kSha256;
+        public const ChecksumType TypeWholeSha1 = ChecksumType.WholeSha1;
+        public const ChecksumType TypeWholeSha256 = ChecksumType.WholeSha256;
+        public const ChecksumType TypeWholeSha512 = ChecksumType.WholeSha512;
+        public Checksum(int type, byte[] value);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Type { get; }
+        public int DescribeContents();
+        public byte[] GetValue();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum ChecksumType {
+        None = 0,
+        PartialMerkleRoot1mSha256 = 32,
+        PartialMerkleRoot1mSha512 = 64,
+        WholeMd5 = 2,
+        WholeMerkleRoot4kSha256 = 1,
+        WholeSha1 = 4,
+        WholeSha256 = 8,
+        WholeSha512 = 16,
+    }
     public class ComponentInfo : PackageItemInfo {
+        public IList<string>? AttributionTags { get; set; }
     }
     public enum ConfigChanges {
+        FontWeightAdjustment = 268435456,
     }
     public class LauncherActivityInfo : Object {
+        public virtual ActivityInfo ActivityInfo { get; }
+        public virtual float LoadingProgress { get; }
     }
     public class LauncherApps : Object {
+        public virtual PendingIntent? GetShortcutIntent(string packageName, string shortcutId, Bundle? opts, UserHandle user);
         public abstract class Callback : Object {
+            public virtual void OnPackageLoadingProgressChanged(string packageName, UserHandle user, float progress);
         }
     }
     public enum LaunchMode {
+        SingleInstancePerTask = 4,
     }
     public class PackageInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const RequestedPermission RequestedPermissionNeverForLocation = RequestedPermission.NeverForLocation;
+        public IList<Attribution>? Attributions { get; set; }
     }
     public enum PackageInfoFlags {
+        Attributions = -2147483648,
     }
     public class PackageInstaller : Object {
+        public virtual void UninstallExistingPackage(string packageName, IntentSender? statusReceiver);
         public class Session : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+            public virtual void SetChecksums(string name, IList<Checksum> checksums, byte[]? signature);
         }
         public class SessionInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public const StagedSession StagedSessionConflict = StagedSession.Conflict;
+            public virtual string InstallerAttributionTag { get; }
+            public virtual int RequireUserAction { get; }
         }
         public class SessionParams : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public const PackageInstallUserAction UserActionNotRequired = PackageInstallUserAction.NotRequired;
+            public const PackageInstallUserAction UserActionRequired = PackageInstallUserAction.Required;
+            public const PackageInstallUserAction UserActionUnspecified = PackageInstallUserAction.Unspecified;
+            public virtual void SetInstallScenario(int installScenario);
+            public virtual void SetRequireUserAction(int requireUserAction);
         }
     }
+    public enum PackageInstallScenario {
+        Bulk = 2,
+        BulkSecondary = 3,
+        Default = 0,
+        Fast = 1,
+    }
+    public enum PackageInstallUserAction {
+        NotRequired = 2,
+        Required = 1,
+        Unspecified = 0,
+    }
     public abstract class PackageManager : Object {
+        public const PackageInfoFlags GetAttributions = PackageInfoFlags.Attributions;
+        public const PackageInstallScenario InstallScenarioBulk = PackageInstallScenario.Bulk;
+        public const PackageInstallScenario InstallScenarioBulkSecondary = PackageInstallScenario.BulkSecondary;
+        public const PackageInstallScenario InstallScenarioDefault = PackageInstallScenario.Default;
+        public const PackageInstallScenario InstallScenarioFast = PackageInstallScenario.Fast;
+        public const string FeatureHardwareKeystore = "android.hardware.hardware_keystore";
+        public const string FeatureIdentityCredentialHardware = "android.hardware.identity_credential";
+        public const string FeatureIdentityCredentialHardwareDirectAccess = "android.hardware.identity_credential_direct_access";
+        public const string FeatureKeystoreAppAttestKey = "android.hardware.keystore.app_attest_key";
+        public const string FeatureKeystoreLimitedUseKey = "android.hardware.keystore.limited_use_key";
+        public const string FeatureKeystoreSingleUseKey = "android.hardware.keystore.single_use_key";
+        public const string FeatureOpenglesDeqpLevel = "android.software.opengles.deqp.level";
+        public const string FeatureSecurityModelCompatible = "android.hardware.security.model.compatible";
+        public const string PropertyMediaCapabilities = "android.media.PROPERTY_MEDIA_CAPABILITIES";
+        public static IList TrustAll { get; }
+        public static IList TrustNone { get; }
+        public virtual void GetGroupOfPlatformPermission(string permissionName, IExecutor executor, IConsumer callback);
-        public abstract PermissionGroupInfo GetPermissionGroupInfo(string permName, PackageInfoFlags flags);
+        public abstract PermissionGroupInfo GetPermissionGroupInfo(string groupName, PackageInfoFlags flags);
+        public virtual void GetPlatformPermissionsForGroup(string permissionGroupName, IExecutor executor, IConsumer callback);
+        public virtual PackageManager.Property GetProperty(string propertyName, ComponentName component);
+        public virtual PackageManager.Property GetProperty(string propertyName, string packageName);
+        public virtual Resources GetResourcesForApplication(ApplicationInfo app, Configuration? configuration);
+        public virtual int GetTargetSdkVersion(string packageName);
+        public virtual IList<PackageManager.Property> QueryActivityProperty(string propertyName);
+        public virtual IList<PackageManager.Property> QueryApplicationProperty(string propertyName);
-        public abstract IList<PermissionInfo> QueryPermissionsByGroup(string permissionGroup, PackageInfoFlags flags);
+        public abstract IList<PermissionInfo> QueryPermissionsByGroup(string? permissionGroup, PackageInfoFlags flags);
+        public virtual IList<PackageManager.Property> QueryProviderProperty(string propertyName);
+        public virtual IList<PackageManager.Property> QueryReceiverProperty(string propertyName);
+        public virtual IList<PackageManager.Property> QueryServiceProperty(string propertyName);
+        public virtual void RequestChecksums(string packageName, bool includeSplits, int required, IList<Certificate> trustedInstallers, PackageManager.IOnChecksumsReadyListener onChecksumsReadyListener);
+        public class ChecksumsReadyEventArgs : EventArgs {
+            public ChecksumsReadyEventArgs(IList<ApkChecksum> checksums);
+            public IList<ApkChecksum> Checksums { get; }
+        }
+        public interface IOnChecksumsReadyListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnChecksumsReady(IList<ApkChecksum> checksums);
+        }
+        public sealed class Property : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public bool Boolean { get; }
+            public string? ClassName { get; }
+            public static IParcelableCreator Creator { get; }
+            public float Float { get; }
+            public int Integer { get; }
+            public bool IsBoolean { get; }
+            public bool IsFloat { get; }
+            public bool IsInteger { get; }
+            public bool IsResourceId { get; }
+            public bool IsString { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public string Name { get; }
+            public string PackageName { get; }
+            public int ResourceId { get; }
+            public string? String { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public int DescribeContents();
+            public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+            public static class InterfaceConsts {
+                public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+                public const int ContentsFileDescriptor = 1;
+            }
+        }
     }
     public class PermissionInfo : PackageItemInfo, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const Protection ProtectionInternal = Protection.Internal;
     }
     public enum Protection {
+        Internal = 4,
     }
+    public enum RawExternalStorageAccess {
+        Default = 0,
+        NotRequested = 2,
+        Requested = 1,
+    }
     public enum RequestedPermission {
+        NeverForLocation = 65536,
     }
     public sealed class ShortcutInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class Builder : Object {
-            public virtual ShortcutInfo.Builder SetLongLived(bool londLived);
+            public virtual ShortcutInfo.Builder SetLongLived(bool longLived);
+            public virtual ShortcutInfo.Builder SetStartingTheme(int themeResId);
         }
     }
     public enum StagedSession {
+        Conflict = 4,
     }
 }

Android.Content.PM.Verify.Domain

+namespace Android.Content.PM.Verify.Domain {
+    public enum DomainState {
+        None = 0,
+        Selected = 1,
+        Verified = 2,
+    }
+    public sealed class DomainVerificationManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public DomainVerificationUserState? GetDomainVerificationUserState(string packageName);
+    }
+    public sealed class DomainVerificationUserState : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const DomainState DomainStateNone = DomainState.None;
+        public const DomainState DomainStateSelected = DomainState.Selected;
+        public const DomainState DomainStateVerified = DomainState.Verified;
+        public static IParcelableCreator Creator { get; }
+        public IDictionary<string, Integer> HostToStateMap { get; }
+        public bool IsLinkHandlingAllowed { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string PackageName { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public UserHandle User { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+}

Android.Content.Res

 namespace Android.Content.Res {
     public class ColorStateList : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual ColorStateList WithLStar(float lStar);
     }
     public sealed class Configuration : Object, IComparable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const int FontWeightAdjustmentUndefined = 2147483647;
+        public int FontWeightAdjustment { get; set; }
     }
-    public class TypedArray : Object {
+    public class TypedArray : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual void Close();
     }
 }

Android.Graphics

 namespace Android.Graphics {
     public sealed class Bitmap : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public HardwareBuffer HardwareBuffer { get; }
+        public Bitmap AsShared();
     }
     public sealed class BitmapRegionDecoder : Object {
+        public static BitmapRegionDecoder NewInstance(ParcelFileDescriptor pfd);
-        public static BitmapRegionDecoder? NewInstance(FileDescriptor? fd, bool isShareable);
+        public static BitmapRegionDecoder NewInstance(FileDescriptor fd, bool isShareable);
+        public static BitmapRegionDecoder NewInstance(byte[] data, int offset, int length);
-        public static BitmapRegionDecoder? NewInstance(byte[]? data, int offset, int length, bool isShareable);
+        public static BitmapRegionDecoder NewInstance(byte[] data, int offset, int length, bool isShareable);
+        public static BitmapRegionDecoder? NewInstance(Stream @is);
-        public static BitmapRegionDecoder? NewInstance(Stream? @is, bool isShareable);
+        public static BitmapRegionDecoder? NewInstance(Stream @is, bool isShareable);
+        public static BitmapRegionDecoder NewInstance(string pathName);
-        public static BitmapRegionDecoder? NewInstance(string? pathName, bool isShareable);
+        public static BitmapRegionDecoder NewInstance(string pathName, bool isShareable);
     }
     public class Canvas : Object {
+        public virtual void DrawGlyphs(int[] glyphIds, int glyphIdOffset, float[] positions, int positionOffset, int glyphCount, Font font, Paint paint);
+        public virtual void DrawPatch(NinePatch patch, Rect dst, Paint? paint);
+        public virtual void DrawPatch(NinePatch patch, RectF dst, Paint? paint);
     }
     public abstract class ColorSpace : Object {
+        public static float[] CctToXyz(int cct);
+        public static float[] ChromaticAdaptation(ColorSpace.Adaptation adaptation, float[] srcWhitePoint, float[] dstWhitePoint);
     }
     public sealed class ImageDecoder : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public static ImageDecoder.Source CreateSource(byte[] data);
+        public static ImageDecoder.Source CreateSource(byte[] data, int offset, int length);
     }
     public class ImageFormat : Object {
+        public const ImageFormatType YcbcrP010 = ImageFormatType.YcbcrP010;
     }
     public enum ImageFormatType {
+        YcbcrP010 = 54,
     }
     public class Matrix : Object {
+        public static Matrix IdentityMatrix { get; }
+        public void Dump(PrintWriter pw);
     }
+    public sealed class ParcelableColorSpace : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public ParcelableColorSpace(ColorSpace colorSpace);
+        public ColorSpace ColorSpace { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public static bool IsParcelable(ColorSpace colorSpace);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public class RadialGradient : Shader {
+        public RadialGradient(float startX, float startY, float startRadius, float endX, float endY, float endRadius, long[] colors, float[]? stops, Shader.TileMode tileMode);
     }
     public sealed class RecordingCanvas : Canvas {
-        public void DrawPatch(NinePatch patch, Rect dst, Paint? paint);
+        public sealed override void DrawPatch(NinePatch patch, Rect dst, Paint? paint);
-        public void DrawPatch(NinePatch patch, RectF dst, Paint? paint);
+        public sealed override void DrawPatch(NinePatch patch, RectF dst, Paint? paint);
     }
     public sealed class Rect : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public void Inset(Insets insets);
+        public void Inset(int left, int top, int right, int bottom);
     }
+    public sealed class RenderEffect : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static RenderEffect CreateBitmapEffect(Bitmap bitmap);
+        public static RenderEffect CreateBitmapEffect(Bitmap bitmap, Rect? src, Rect dst);
+        public static RenderEffect CreateBlendModeEffect(RenderEffect dst, RenderEffect src, BlendMode blendMode);
+        public static RenderEffect CreateBlurEffect(float radiusX, float radiusY, RenderEffect inputEffect, Shader.TileMode edgeTreatment);
+        public static RenderEffect CreateBlurEffect(float radiusX, float radiusY, Shader.TileMode edgeTreatment);
+        public static RenderEffect CreateChainEffect(RenderEffect outer, RenderEffect inner);
+        public static RenderEffect CreateColorFilterEffect(ColorFilter colorFilter);
+        public static RenderEffect CreateColorFilterEffect(ColorFilter colorFilter, RenderEffect renderEffect);
+        public static RenderEffect CreateOffsetEffect(float offsetX, float offsetY);
+        public static RenderEffect CreateOffsetEffect(float offsetX, float offsetY, RenderEffect input);
+        public static RenderEffect CreateShaderEffect(Shader shader);
+    }
     public sealed class RenderNode : Object {
+        public bool SetRenderEffect(RenderEffect? renderEffect);
     }
     public class Shader : Object {
         public sealed class TileMode : Enum {
+            public static Shader.TileMode Decal { get; }
         }
     }
 }

Android.Graphics.Drawables

 namespace Android.Graphics.Drawables {
     public class BitmapDrawable : Drawable {
-        public Bitmap Bitmap { get; }
+        public Bitmap Bitmap { get; set; }
     }
     public class ColorStateListDrawable : Drawable, Drawable.ICallback, IDisposable, IJavaObject, IJavaPeerable {
-        public virtual bool HasFocusStateSpecified { get; }
+        public override bool HasFocusStateSpecified { get; }
     }
     public abstract class Drawable : Object {
+        public virtual bool HasFocusStateSpecified { get; }
     }
     public class RippleDrawable : LayerDrawable {
+        public virtual ColorStateList EffectColor { get; set; }
-        public virtual void SetColor(ColorStateList? color);
+        public virtual void SetColor(ColorStateList color);
     }
 }

Android.Graphics.Fonts

 namespace Android.Graphics.Fonts {
     public sealed class Font : Object {
+        public int SourceIdentifier { get; }
+        public float GetGlyphBounds(int glyphId, Paint paint, RectF? outBoundingBox);
+        public void GetMetrics(Paint paint, Paint.FontMetrics? outMetrics);
         public sealed class Builder : Object {
+            public Builder(Font font);
         }
     }
 }

Android.Graphics.Text

 namespace Android.Graphics.Text {
+    public sealed class PositionedGlyphs : Object {
+        public float Advance { get; }
+        public float Ascent { get; }
+        public float Descent { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public float OffsetX { get; }
+        public float OffsetY { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public Font GetFont(int index);
+        public int GetGlyphId(int index);
+        public float GetGlyphX(int index);
+        public float GetGlyphY(int index);
+        public int GlyphCount();
+    }
+    public class TextRunShaper : Object {
+        protected TextRunShaper(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static PositionedGlyphs ShapeTextRun(ICharSequence text, int start, int count, int contextStart, int contextCount, float xOffset, float yOffset, bool isRtl, Paint paint);
+        public static PositionedGlyphs ShapeTextRun(char[] text, int start, int count, int contextStart, int contextCount, float xOffset, float yOffset, bool isRtl, Paint paint);
+        public static PositionedGlyphs ShapeTextRun(string text, int start, int count, int contextStart, int contextCount, float xOffset, float yOffset, bool isRtl, Paint paint);
+    }
 }

Android.Hardware

 namespace Android.Hardware {
+    public abstract class BatteryState : Object {
+        public const BatteryStatus StatusCharging = BatteryStatus.Charging;
+        public const BatteryStatus StatusDischarging = BatteryStatus.Discharging;
+        public const BatteryStatus StatusFull = BatteryStatus.Full;
+        public const BatteryStatus StatusNotCharging = BatteryStatus.NotCharging;
+        public const BatteryStatus StatusUnknown = BatteryStatus.Unknown;
+        public BatteryState();
+        protected BatteryState(IntPtr javaReference, JniHandleOwnership transfer);
+        public abstract float Capacity { get; }
+        public abstract bool IsPresent { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public abstract int Status { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum BatteryStatus {
+        Charging = 2,
+        Discharging = 3,
+        Full = 5,
+        NotCharging = 4,
+        Unknown = 1,
+    }
+    public enum PrivacySensors {
+        Camera = 2,
+        Microphone = 1,
+    }
+    public sealed class SensorPrivacyManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public bool SupportsSensorToggle(int sensor);
+        public class Sensors : Object {
+            public const PrivacySensors Camera = PrivacySensors.Camera;
+            public const PrivacySensors Microphone = PrivacySensors.Microphone;
+            protected Sensors(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+    }
 }

Android.Hardware.Biometrics

 namespace Android.Hardware.Biometrics {
     public class BiometricManager : Object {
+        public virtual BiometricManager.Strings GetStrings(int authenticators);
+        public class Strings : Object {
+            protected Strings(IntPtr javaReference, JniHandleOwnership transfer);
+            public string ButtonLabel { get; }
+            public virtual ICharSequence ButtonLabelFormatted { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public string PromptMessage { get; }
+            public virtual ICharSequence PromptMessageFormatted { get; }
+            public string SettingName { get; }
+            public virtual ICharSequence SettingNameFormatted { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
     }
 }

Android.Hardware.Camera2

 namespace Android.Hardware.Camera2 {
     public sealed class CameraCharacteristics : CameraMetadata {
+        public static CameraCharacteristics.Key LensDistortionMaximumResolution { get; }
+        public static CameraCharacteristics.Key LensIntrinsicCalibrationMaximumResolution { get; }
+        public static CameraCharacteristics.Key ScalerAvailableRotateAndCropModes { get; }
+        public static CameraCharacteristics.Key ScalerDefaultSecureImageSize { get; }
+        public static CameraCharacteristics.Key ScalerMandatoryMaximumResolutionStreamCombinations { get; }
+        public static CameraCharacteristics.Key ScalerMultiResolutionStreamConfigurationMap { get; }
+        public static CameraCharacteristics.Key ScalerStreamConfigurationMapMaximumResolution { get; }
+        public static CameraCharacteristics.Key SensorInfoActiveArraySizeMaximumResolution { get; }
+        public static CameraCharacteristics.Key SensorInfoBinningFactor { get; }
+        public static CameraCharacteristics.Key SensorInfoPixelArraySizeMaximumResolution { get; }
+        public static CameraCharacteristics.Key SensorInfoPreCorrectionActiveArraySizeMaximumResolution { get; }
     }
     public abstract class CameraDevice : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual void CreateExtensionSession(ExtensionSessionConfiguration extensionConfiguration);
     }
+    public sealed class CameraExtensionCharacteristics : Object {
+        public const CameraExtensionTypes ExtensionAutomatic = CameraExtensionTypes.Automatic;
+        public const CameraExtensionTypes ExtensionBeauty = CameraExtensionTypes.Beauty;
+        public const CameraExtensionTypes ExtensionBokeh = CameraExtensionTypes.Bokeh;
+        public const CameraExtensionTypes ExtensionHdr = CameraExtensionTypes.Hdr;
+        public const CameraExtensionTypes ExtensionNight = CameraExtensionTypes.Night;
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<Integer> SupportedExtensions { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public Range? GetEstimatedCaptureLatencyRangeMillis(int extension, Size captureOutputSize, int format);
+        public IList<Size> GetExtensionSupportedSizes(int extension, Class klass);
+        public IList<Size> GetExtensionSupportedSizes(int extension, int format);
+    }
+    public abstract class CameraExtensionSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        protected CameraExtensionSession(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual CameraDevice Device { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual int Capture(CaptureRequest request, IExecutor executor, CameraExtensionSession.ExtensionCaptureCallback listener);
+        public virtual void Close();
+        public virtual int SetRepeatingRequest(CaptureRequest request, IExecutor executor, CameraExtensionSession.ExtensionCaptureCallback listener);
+        public virtual void StopRepeating();
+        public abstract class ExtensionCaptureCallback : Object {
+            public ExtensionCaptureCallback();
+            protected ExtensionCaptureCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void OnCaptureFailed(CameraExtensionSession session, CaptureRequest request);
+            public virtual void OnCaptureProcessStarted(CameraExtensionSession session, CaptureRequest request);
+            public virtual void OnCaptureSequenceAborted(CameraExtensionSession session, int sequenceId);
+            public virtual void OnCaptureSequenceCompleted(CameraExtensionSession session, int sequenceId);
+            public virtual void OnCaptureStarted(CameraExtensionSession session, CaptureRequest request, long timestamp);
+        }
+        public abstract class StateCallback : Object {
+            public StateCallback();
+            protected StateCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void OnClosed(CameraExtensionSession session);
+            public abstract void OnConfigured(CameraExtensionSession session);
+            public abstract void OnConfigureFailed(CameraExtensionSession session);
+        }
+    }
+    public enum CameraExtensionTypes {
+        Automatic = 0,
+        Beauty = 1,
+        Bokeh = 2,
+        Hdr = 3,
+        Night = 4,
+    }
     public sealed class CameraManager : Object {
+        public CameraExtensionCharacteristics GetCameraExtensionCharacteristics(string cameraId);
     }
     public abstract class CameraMetadata : Object {
+        public const RequestAvailableCapabilities RequestAvailableCapabilitiesRemosaicReprocessing = RequestAvailableCapabilities.RemosaicReprocessing;
+        public const RequestAvailableCapabilities RequestAvailableCapabilitiesUltraHighResolutionSensor = RequestAvailableCapabilities.UltraHighResolutionSensor;
+        public const ScalerRotateAndCropType ScalerRotateAndCrop180 = ScalerRotateAndCropType.Rotate180;
+        public const ScalerRotateAndCropType ScalerRotateAndCrop270 = ScalerRotateAndCropType.Rotate270;
+        public const ScalerRotateAndCropType ScalerRotateAndCrop90 = ScalerRotateAndCropType.Rotate90;
+        public const ScalerRotateAndCropType ScalerRotateAndCropAuto = ScalerRotateAndCropType.Auto;
+        public const ScalerRotateAndCropType ScalerRotateAndCropNone = ScalerRotateAndCropType.None;
+        public const SensorPixelMode SensorPixelModeDefault = SensorPixelMode.Default;
+        public const SensorPixelMode SensorPixelModeMaximumResolution = SensorPixelMode.MaximumResolution;
     }
     public sealed class CaptureRequest : CameraMetadata, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static CaptureRequest.Key ScalerRotateAndCrop { get; }
+        public static CaptureRequest.Key SensorPixelMode { get; }
     }
     public class CaptureResult : CameraMetadata {
+        public virtual string CameraId { get; }
+        public static CaptureResult.Key ScalerRotateAndCrop { get; }
+        public static CaptureResult.Key SensorPixelMode { get; }
+        public static CaptureResult.Key SensorRawBinningFactorUsed { get; }
     }
+    public class MultiResolutionImageReader : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public MultiResolutionImageReader(ICollection<MultiResolutionStreamInfo> streams, int format, int maxImages);
+        protected MultiResolutionImageReader(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual Surface Surface { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void Close();
+        public virtual void Flush();
+        public virtual MultiResolutionStreamInfo GetStreamInfoForImageReader(ImageReader reader);
+        public virtual void SetOnImageAvailableListener(ImageReader.IOnImageAvailableListener? listener, IExecutor? executor);
+    }
     public enum RequestAvailableCapabilities {
+        RemosaicReprocessing = 17,
+        UltraHighResolutionSensor = 16,
     }
+    public enum ScalerRotateAndCropType {
+        Auto = 4,
+        None = 0,
+        Rotate180 = 2,
+        Rotate270 = 3,
+        Rotate90 = 1,
+    }
+    public enum SensorPixelMode {
+        Default = 0,
+        MaximumResolution = 1,
+    }
     public sealed class TotalCaptureResult : CaptureResult {
+        public IDictionary<string, TotalCaptureResult> PhysicalCameraTotalResults { get; }
     }
 }

Android.Hardware.Camera2.Params

 namespace Android.Hardware.Camera2.Params {
+    public sealed class ExtensionSessionConfiguration : Object {
+        public ExtensionSessionConfiguration(int extension, IList<OutputConfiguration> outputs, IExecutor executor, CameraExtensionSession.StateCallback listener);
+        public IExecutor Executor { get; }
+        public int Extension { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<OutputConfiguration> OutputConfigurations { get; }
+        public CameraExtensionSession.StateCallback StateCallback { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
     public sealed class InputConfiguration : Object {
+        public InputConfiguration(ICollection<MultiResolutionStreamInfo> multiResolutionInputs, int format);
+        public bool IsMultiResolution { get; }
     }
     public sealed class MandatoryStreamCombination : Object {
         public sealed class MandatoryStreamInformation : Object {
+            public bool IsMaximumSize { get; }
+            public bool IsUltraHighResolution { get; }
         }
     }
+    public sealed class MultiResolutionStreamConfigurationMap : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int[] GetInputFormats();
+        public ICollection<MultiResolutionStreamInfo> GetInputInfo(int format);
+        public int[] GetOutputFormats();
+        public ICollection<MultiResolutionStreamInfo> GetOutputInfo(int format);
+    }
+    public class MultiResolutionStreamInfo : Object {
+        public MultiResolutionStreamInfo(int streamWidth, int streamHeight, string physicalCameraId);
+        protected MultiResolutionStreamInfo(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual int Height { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual string PhysicalCameraId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual int Width { get; }
+    }
     public sealed class OutputConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public void AddSensorPixelModeUsed(int sensorPixelModeUsed);
+        public static ICollection<OutputConfiguration> CreateInstancesForMultiResolutionOutput(MultiResolutionImageReader multiResolutionImageReader);
+        public void RemoveSensorPixelModeUsed(int sensorPixelModeUsed);
     }
 }

Android.Hardware.Display

 namespace Android.Hardware.Display {
+    public enum ConnectionToSinkType {
+        BuiltIn = 1,
+        Direct = 2,
+        Transitive = 3,
+        Unknown = 0,
+    }
+    public sealed class DeviceProductInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ConnectionToSinkType ConnectionToSinkBuiltIn = ConnectionToSinkType.BuiltIn;
+        public const ConnectionToSinkType ConnectionToSinkDirect = ConnectionToSinkType.Direct;
+        public const ConnectionToSinkType ConnectionToSinkTransitive = ConnectionToSinkType.Transitive;
+        public const ConnectionToSinkType ConnectionToSinkUnknown = ConnectionToSinkType.Unknown;
+        public DeviceProductInfo(string? name, string manufacturerPnpId, string productId, int modelYear, int connectionToSinkType);
+        public int ConnectionToSinkType { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string ManufacturerPnpId { get; }
+        public int ManufactureWeek { get; }
+        public int ManufactureYear { get; }
+        public int ModelYear { get; }
+        public string? Name { get; }
+        public string ProductId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class DisplayManager : Object {
+        public const MatchContentFramerate MatchContentFramerateAlways = MatchContentFramerate.Always;
+        public const MatchContentFramerate MatchContentFramerateNever = MatchContentFramerate.Never;
+        public const MatchContentFramerate MatchContentFramerateSeamlesssOnly = MatchContentFramerate.SeamlessOnly;
+        public const MatchContentFramerate MatchContentFramerateUnknown = MatchContentFramerate.Unknown;
+        public int MatchContentFrameRateUserPreference { get; }
     }
+    public enum MatchContentFramerate {
+        Always = 2,
+        Never = 0,
+        SeamlessOnly = 1,
+        Unknown = -1,
+    }
 }

Android.Hardware.Input

 namespace Android.Hardware.Input {
     public sealed class InputManager : Object {
+        public float MaximumObscuringOpacityForTouch { get; }
     }
 }

Android.Hardware.Lights

+namespace Android.Hardware.Lights {
+    public sealed class Light : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const LightCapability LightCapabilityBrightness = LightCapability.Brightness;
+        public const LightCapability LightCapabilityRgb = LightCapability.Rgb;
+        public const LightType LightTypeInput = LightType.Input;
+        public const LightType LightTypeMicrophone = LightType.Microphone;
+        public const LightType LightTypePlayerId = LightType.PlayerId;
+        public static IParcelableCreator Creator { get; }
+        public bool HasBrightnessControl { get; }
+        public bool HasRgbControl { get; }
+        public int Id { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Name { get; }
+        public int Ordinal { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int Type { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum LightCapability {
+        Brightness = 1,
+        Rgb = 0,
+    }
+    public abstract class LightsManager : Object {
+        protected LightsManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public abstract IList<Light> Lights { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public abstract LightState GetLightState(Light light);
+        public abstract LightsManager.LightsSession OpenSession();
+        public abstract class LightsSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+            protected LightsSession(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public abstract void Close();
+            public abstract void RequestLights(LightsRequest request);
+        }
+    }
+    public sealed class LightsRequest : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<Integer> Lights { get; }
+        public IDictionary<Light, LightState> LightsAndStates { get; }
+        public IList<LightState> LightStates { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public LightsRequest.Builder AddLight(Light light, LightState state);
+            public LightsRequest Build();
+            public LightsRequest.Builder ClearLight(Light light);
+        }
+    }
+    public sealed class LightState : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int Color { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int PlayerId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public LightState Build();
+            public LightState.Builder SetColor(Color color);
+            public LightState.Builder SetPlayerId(int playerId);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum LightType {
+        Input = 10001,
+        Microphone = 8,
+        PlayerId = 10002,
+    }
+}

Android.Icu.Number

 namespace Android.Icu.Number {
-    public class FormattedNumber : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable {
+    public class FormattedNumber : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IFormattedValue, IJavaObject, IJavaPeerable {
+        public virtual Object? AppendTo(Object? appendable);
+        public virtual bool NextPosition(ConstrainedFieldPosition? cfpos);
     }
-    public class FormattedNumberRange : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable {
+    public class FormattedNumberRange : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IFormattedValue, IJavaObject, IJavaPeerable {
+        public virtual Object AppendTo(Object appendable);
+        public virtual bool NextPosition(ConstrainedFieldPosition cfpos);
     }
 }

Android.Icu.Text

 namespace Android.Icu.Text {
+    public class ConstrainedFieldPosition : Object {
+        public ConstrainedFieldPosition();
+        protected ConstrainedFieldPosition(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual _Format.Field Field { get; }
+        public virtual Object FieldValue { get; }
+        public virtual long Int64IterationContext { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int Limit { get; }
+        public virtual int Start { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void ConstrainClass(Class classConstraint);
+        public virtual void ConstrainField(_Format.Field field);
+        public virtual bool MatchesField(_Format.Field field, Object fieldValue);
+        public virtual void Reset();
+        public virtual void SetState(_Format.Field field, Object value, int start, int limit);
+    }
     public class DateFormatSymbols : Object, ICloneable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public virtual string[]? GetNarrowEras();
+        public virtual void SetNarrowEras(string[]? newNarrowEras);
     }
     public class DateIntervalFormat : UFormat {
+        public virtual DateIntervalFormat.FormattedDateInterval FormatToValue(Calendar fromCalendar, Calendar toCalendar);
+        public virtual DateIntervalFormat.FormattedDateInterval FormatToValue(DateInterval dtInterval);
+        public sealed class FormattedDateInterval : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IFormattedValue, IJavaObject, IJavaPeerable {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public Object? AppendTo(Object? appendable);
+            public char CharAt(int index);
+            public IEnumerator<char> GetEnumerator();
+            public int Length();
+            public bool NextPosition(ConstrainedFieldPosition? cfpos);
+            public string? SubSequence(int start, int end);
+            public ICharSequence? SubSequenceFormatted(int start, int end);
+            IEnumerator System.Collections.IEnumerable.GetEnumerator();
+            public IAttributedCharacterIterator? ToCharacterIterator();
+        }
     }
     public class DecimalFormat : NumberFormat {
+        public virtual int MinimumGroupingDigits { get; set; }
+        public virtual bool ParseCaseSensitive { get; set; }
+        public virtual bool ParseNoExponent { get; set; }
+        public virtual bool SignAlwaysShown { get; set; }
     }
+    public interface IFormattedValue : ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IJavaObject, IJavaPeerable {
+        Object? AppendTo(Object? appendable);
+        bool NextPosition(ConstrainedFieldPosition? cfpos);
+        IAttributedCharacterIterator? ToCharacterIterator();
+        new string? ToString();
+    }
     public abstract class NumberFormat : UFormat {
         public new class Field : _Format.Field {
+            public static NumberFormat.Field Compact { get; }
+            public static NumberFormat.Field MeasureUnit { get; }
         }
     }
     public class PluralRules : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public virtual string Select(FormattedNumber number);
     }
     public sealed class RelativeDateTimeFormatter : Object {
+        public RelativeDateTimeFormatter.FormattedRelativeDateTime FormatNumericToValue(double offset, RelativeDateTimeFormatter.RelativeDateTimeUnit unit);
+        public RelativeDateTimeFormatter.FormattedRelativeDateTime FormatToValue(RelativeDateTimeFormatter.Direction direction, RelativeDateTimeFormatter.AbsoluteUnit unit);
+        public RelativeDateTimeFormatter.FormattedRelativeDateTime FormatToValue(double quantity, RelativeDateTimeFormatter.Direction direction, RelativeDateTimeFormatter.RelativeUnit unit);
+        public RelativeDateTimeFormatter.FormattedRelativeDateTime FormatToValue(double offset, RelativeDateTimeFormatter.RelativeDateTimeUnit unit);
         public sealed class AbsoluteUnit : Enum {
+            public static RelativeDateTimeFormatter.AbsoluteUnit Hour { get; }
+            public static RelativeDateTimeFormatter.AbsoluteUnit Minute { get; }
+            public static RelativeDateTimeFormatter.AbsoluteUnit Quarter { get; }
         }
+        public class FormattedRelativeDateTime : Object, ICharSequence, IDisposable, IEnumerable, IEnumerable<char>, IFormattedValue, IJavaObject, IJavaPeerable {
+            protected FormattedRelativeDateTime(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual Object? AppendTo(Object? appendable);
+            public virtual char CharAt(int index);
+            public IEnumerator<char> GetEnumerator();
+            public virtual int Length();
+            public virtual bool NextPosition(ConstrainedFieldPosition? cfpos);
+            public string? SubSequence(int start, int end);
+            public virtual ICharSequence? SubSequenceFormatted(int start, int end);
+            IEnumerator IEnumerable.GetEnumerator();
+            public virtual IAttributedCharacterIterator? ToCharacterIterator();
+        }
     }
 }

Android.Icu.Util

 namespace Android.Icu.Util {
     public class MeasureUnit : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public static MeasureUnit Decade { get; }
+        public static MeasureUnit DotPerCentimeter { get; }
+        public static MeasureUnit DotPerInch { get; }
+        public static MeasureUnit Em { get; }
+        public static MeasureUnit Megapixel { get; }
+        public static MeasureUnit Pixel { get; }
+        public static MeasureUnit PixelPerCentimeter { get; }
+        public static MeasureUnit PixelPerInch { get; }
     }
     public sealed class ULocale : Object, IComparable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
+        public static ICollection<ULocale>? GetAvailableLocalesByType(ULocale.AvailableType type);
+        public sealed class AvailableType : Enum {
+            public static ULocale.AvailableType Default { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public static ULocale.AvailableType OnlyLegacyAliases { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static ULocale.AvailableType WithLegacyAliases { get; }
+            public static ULocale.AvailableType ValueOf(string name);
+            public static ULocale.AvailableType[]? Values();
+        }
     }
 }

Android.InputMethodServices

 namespace Android.InputMethodServices {
     public abstract class AbstractInputMethodService : Service, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback {
+        public override bool IsUiContext { get; }
     }
 }

Android.Locations

 namespace Android.Locations {
+    public class FlushCompleteEventArgs : EventArgs {
+        public FlushCompleteEventArgs(int requestCode);
+        public int RequestCode { get; }
+    }
     public sealed class GnssAntennaInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class Builder : Object {
+            public Builder(GnssAntennaInfo antennaInfo);
+            public Builder(double carrierFrequencyMHz, GnssAntennaInfo.PhaseCenterOffset phaseCenterOffset);
         }
     }
-    public sealed class GnssCapabilities : Object {
+    public sealed class GnssCapabilities : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public bool HasAntennaInfo { get; }
+        public bool HasMeasurements { get; }
+        public bool HasNavigationMessages { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(GnssCapabilities capabilities);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public GnssCapabilities Build();
+            public GnssCapabilities.Builder SetHasAntennaInfo(bool capable);
+            public GnssCapabilities.Builder SetHasMeasurements(bool capable);
+            public GnssCapabilities.Builder SetHasNavigationMessages(bool capable);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
     }
+    public sealed class GnssMeasurementRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public bool IsFullTracking { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(GnssMeasurementRequest request);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public GnssMeasurementRequest Build();
+            public GnssMeasurementRequest.Builder SetFullTracking(bool value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
-    public sealed class GnssStatus : Object {
+    public sealed class GnssStatus : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
     }
     public interface ILocationListener : IDisposable, IJavaObject, IJavaPeerable {
+        void OnFlushComplete(int requestCode);
     }
     public class Location : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual bool Mock { get; set; }
     }
     public class LocationManager : Object {
+        public const string ActionGnssCapabilitiesChanged = "android.location.action.GNSS_CAPABILITIES_CHANGED";
+        public const string ExtraGnssCapabilities = "android.location.extra.GNSS_CAPABILITIES";
+        public const string FusedProvider = "fused";
+        public const string KeyFlushComplete = "flushComplete";
+        public const string KeyLocations = "locations";
+        public virtual IList<GnssAntennaInfo>? GnssAntennaInfos { get; }
-        public virtual void AddProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent);
+        public virtual void AddProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent pendingIntent);
+        public virtual void AddTestProvider(string provider, ProviderProperties properties);
+        public virtual void AddTestProvider(string provider, ProviderProperties properties, ICollection<string> extraAttributionTags);
+        public virtual void GetCurrentLocation(string provider, LocationRequest locationRequest, CancellationSignal? cancellationSignal, IExecutor executor, IConsumer consumer);
+        public virtual ProviderProperties? GetProviderProperties(string provider);
+        public virtual bool HasProvider(string provider);
+        public virtual bool RegisterGnssMeasurementsCallback(GnssMeasurementRequest request, IExecutor executor, GnssMeasurementsEvent.Callback callback);
+        public virtual void RequestFlush(string provider, PendingIntent pendingIntent, int requestCode);
+        public virtual void RequestFlush(string provider, ILocationListener listener, int requestCode);
+        public virtual void RequestLocationUpdates(string provider, LocationRequest locationRequest, PendingIntent pendingIntent);
+        public virtual void RequestLocationUpdates(string provider, LocationRequest locationRequest, IExecutor executor, ILocationListener listener);
     }
+    public sealed class LocationRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const LocationRequestQuality QualityBalancedPowerAccuracy = LocationRequestQuality.BalancedPowerAccuracy;
+        public const LocationRequestQuality QualityHighAccuracy = LocationRequestQuality.HighAccuracy;
+        public const LocationRequestQuality QualityLowPower = LocationRequestQuality.LowPower;
+        public const long PassiveInterval = (long)9223372036854775807;
+        public static IParcelableCreator Creator { get; }
+        public long DurationMillis { get; }
+        public long IntervalMillis { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public long MaxUpdateDelayMillis { get; }
+        public int MaxUpdates { get; }
+        public float MinUpdateDistanceMeters { get; }
+        public long MinUpdateIntervalMillis { get; }
+        public int Quality { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(LocationRequest locationRequest);
+            public Builder(long intervalMillis);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public LocationRequest Build();
+            public LocationRequest.Builder ClearMinUpdateIntervalMillis();
+            public LocationRequest.Builder SetDurationMillis(long durationMillis);
+            public LocationRequest.Builder SetIntervalMillis(long intervalMillis);
+            public LocationRequest.Builder SetMaxUpdateDelayMillis(long maxUpdateDelayMillis);
+            public LocationRequest.Builder SetMaxUpdates(int maxUpdates);
+            public LocationRequest.Builder SetMinUpdateDistanceMeters(float minUpdateDistanceMeters);
+            public LocationRequest.Builder SetMinUpdateIntervalMillis(long minUpdateIntervalMillis);
+            public LocationRequest.Builder SetQuality(int quality);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum LocationRequestQuality {
+        BalancedPowerAccuracy = 102,
+        HighAccuracy = 100,
+        LowPower = 104,
+    }
 }

Android.Locations.Provider

+namespace Android.Locations.Provider {
+    public enum ProviderAccuracy {
+        Coarse = 2,
+        Fine = 1,
+    }
+    public enum ProviderPowerUsage {
+        High = 3,
+        Low = 1,
+        Medium = 2,
+    }
+    public sealed class ProviderProperties : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ProviderAccuracy AccuracyCoarse = ProviderAccuracy.Coarse;
+        public const ProviderAccuracy AccuracyFine = ProviderAccuracy.Fine;
+        public const ProviderPowerUsage PowerUsageHigh = ProviderPowerUsage.High;
+        public const ProviderPowerUsage PowerUsageLow = ProviderPowerUsage.Low;
+        public const ProviderPowerUsage PowerUsageMedium = ProviderPowerUsage.Medium;
+        public int Accuracy { get; }
+        public static IParcelableCreator Creator { get; }
+        public bool HasAltitudeSupport { get; }
+        public bool HasBearingSupport { get; }
+        public bool HasCellRequirement { get; }
+        public bool HasMonetaryCost { get; }
+        public bool HasNetworkRequirement { get; }
+        public bool HasSatelliteRequirement { get; }
+        public bool HasSpeedSupport { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int PowerUsage { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel parcel, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(ProviderProperties providerProperties);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ProviderProperties Build();
+            public ProviderProperties.Builder SetAccuracy(int accuracy);
+            public ProviderProperties.Builder SetHasAltitudeSupport(bool supportsAltitude);
+            public ProviderProperties.Builder SetHasBearingSupport(bool supportsBearing);
+            public ProviderProperties.Builder SetHasCellRequirement(bool requiresCell);
+            public ProviderProperties.Builder SetHasMonetaryCost(bool monetaryCost);
+            public ProviderProperties.Builder SetHasNetworkRequirement(bool requiresNetwork);
+            public ProviderProperties.Builder SetHasSatelliteRequirement(bool requiresSatellite);
+            public ProviderProperties.Builder SetHasSpeedSupport(bool supportsSpeed);
+            public ProviderProperties.Builder SetPowerUsage(int powerUsage);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+}

Android.Media

 namespace Android.Media {
+    public sealed class ApplicationMediaCapabilities : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<string> SupportedHdrTypes { get; }
+        public IList<string> SupportedVideoMimeTypes { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public IList<string> UnsupportedHdrTypes { get; }
+        public IList<string> UnsupportedVideoMimeTypes { get; }
+        public static ApplicationMediaCapabilities CreateFromXml(XmlReader xmlParser);
+        public int DescribeContents();
+        public bool IsFormatSpecified(string format);
+        public bool IsHdrTypeSupported(string hdrType);
+        public bool IsVideoMimeTypeSupported(string videoMime);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ApplicationMediaCapabilities.Builder AddSupportedHdrType(string hdrType);
+            public ApplicationMediaCapabilities.Builder AddSupportedVideoMimeType(string codecMime);
+            public ApplicationMediaCapabilities.Builder AddUnsupportedHdrType(string hdrType);
+            public ApplicationMediaCapabilities.Builder AddUnsupportedVideoMimeType(string codecMime);
+            public ApplicationMediaCapabilities Build();
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public class AudioDescriptor : Object {
+        public const AudioDescriptorStandard StandardEdid = AudioDescriptorStandard.Edid;
+        public const AudioDescriptorStandard StandardNone = AudioDescriptorStandard.None;
+        protected AudioDescriptor(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual int EncapsulationType { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual int Standard { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual byte[] GetDescriptor();
+    }
+    public enum AudioDescriptorStandard {
+        Edid = 1,
+        None = 0,
+    }
     public sealed class AudioDeviceInfo : Object {
+        public const AudioDeviceType TypeBleHeadset = AudioDeviceType.BleHeadset;
+        public const AudioDeviceType TypeBleSpeaker = AudioDeviceType.BleSpeaker;
+        public const AudioDeviceType TypeHdmiEarc = AudioDeviceType.HdmiEarc;
+        public const AudioDeviceType TypeRemoteSubmix = AudioDeviceType.RemoteSubmix;
+        public IList<AudioDescriptor> AudioDescriptors { get; }
+        public IList<AudioProfile> AudioProfiles { get; }
     }
     public enum AudioDeviceType {
+        BleHeadset = 26,
+        BleSpeaker = 27,
+        HdmiEarc = 29,
+        RemoteSubmix = 25,
     }
+    public enum AudioEncapsulationType {
+        Iec61937 = 1,
+        None = 0,
+    }
     public class AudioFormat : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const Encoding EncodingDra = Encoding.Dra;
+        public const Encoding EncodingDtsUhd = Encoding.DtsUhd;
+        public const Encoding EncodingMpeghBlL3 = Encoding.MpeghBlL3;
+        public const Encoding EncodingMpeghBlL4 = Encoding.MpeghBlL4;
+        public const Encoding EncodingMpeghLcL3 = Encoding.MpeghLcL3;
+        public const Encoding EncodingMpeghLcL4 = Encoding.MpeghLcL4;
+        public const Encoding EncodingPcm24bitPacked = Encoding.Pcm24bitPacked;
+        public const Encoding EncodingPcm32bit = Encoding.Pcm32bit;
     }
     public class AudioManager : Object {
+        public const EncodedSurroundOutput EncodedSurroundOutputAlways = EncodedSurroundOutput.Always;
+        public const EncodedSurroundOutput EncodedSurroundOutputAuto = EncodedSurroundOutput.Auto;
+        public const EncodedSurroundOutput EncodedSurroundOutputManual = EncodedSurroundOutput.Manual;
+        public const EncodedSurroundOutput EncodedSurroundOutputNever = EncodedSurroundOutput.Never;
+        public const EncodedSurroundOutput EncodedSurroundOutputUnknown = EncodedSurroundOutput.Unknown;
+        public const PlaybackOffload PlaybackOffloadGaplessSupported = PlaybackOffload.GaplessSupported;
+        public const PlaybackOffload PlaybackOffloadNotSupported = PlaybackOffload.NotSupported;
+        public const PlaybackOffload PlaybackOffloadSupported = PlaybackOffload.Supported;
+        public const SoundEffect FxBack = SoundEffect.Back;
+        public virtual IList<AudioDeviceInfo> AvailableCommunicationDevices { get; }
+        public virtual AudioDeviceInfo? CommunicationDevice { get; }
+        public virtual int EncodedSurroundMode { get; }
+        public virtual void AddOnCommunicationDeviceChangedListener(IExecutor executor, AudioManager.IOnCommunicationDeviceChangedListener listener);
+        public virtual void AddOnModeChangedListener(IExecutor executor, AudioManager.IOnModeChangedListener listener);
+        public virtual void ClearCommunicationDevice();
+        public virtual int GetAudioHwSyncForSession(int sessionId);
+        public static int GetPlaybackOffloadSupport(AudioFormat format, AudioAttributes attributes);
+        public virtual bool IsSurroundFormatEnabled(int audioFormat);
+        public virtual void RemoveOnCommunicationDeviceChangedListener(AudioManager.IOnCommunicationDeviceChangedListener listener);
+        public virtual void RemoveOnModeChangedListener(AudioManager.IOnModeChangedListener listener);
+        public virtual bool SetCommunicationDevice(AudioDeviceInfo device);
+        public virtual bool SetEncodedSurroundMode(int mode);
+        public virtual bool SetSurroundFormatEnabled(int audioFormat, bool enabled);
+        public class CommunicationDeviceChangedEventArgs : EventArgs {
+            public CommunicationDeviceChangedEventArgs(AudioDeviceInfo device);
+            public AudioDeviceInfo Device { get; }
+        }
+        public interface IOnCommunicationDeviceChangedListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnCommunicationDeviceChanged(AudioDeviceInfo? device);
+        }
+        public interface IOnModeChangedListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnModeChanged(int mode);
+        }
+        public class ModeChangedEventArgs : EventArgs {
+            public ModeChangedEventArgs(int mode);
+            public int Mode { get; }
+        }
     }
     public sealed class AudioMetadata : Object {
         public class Format : Object {
+            public static AudioMetadata.IKey KeyPresentationContentClassifier { get; }
+            public static AudioMetadata.IKey KeyPresentationId { get; }
+            public static AudioMetadata.IKey KeyPresentationLanguage { get; }
+            public static AudioMetadata.IKey KeyProgramId { get; }
         }
     }
     public sealed class AudioPlaybackConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public AudioAttributes? AudioAttributes { get; }
+        public AudioAttributes AudioAttributes { get; }
+        public AudioDeviceInfo AudioDeviceInfo { get; }
-        public static IParcelableCreator? Creator { get; }
+        public static IParcelableCreator Creator { get; }
-        public void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
     }
     public sealed class AudioPresentation : Object {
+        public const AudioPresentationContentType ContentCommentary = AudioPresentationContentType.Commentary;
+        public const AudioPresentationContentType ContentDialog = AudioPresentationContentType.Dialog;
+        public const AudioPresentationContentType ContentEmergency = AudioPresentationContentType.Emergency;
+        public const AudioPresentationContentType ContentHearingImpaired = AudioPresentationContentType.HearingImpaired;
+        public const AudioPresentationContentType ContentMain = AudioPresentationContentType.Main;
+        public const AudioPresentationContentType ContentMusicAndEffects = AudioPresentationContentType.MusicAndEffects;
+        public const AudioPresentationContentType ContentUnknown = AudioPresentationContentType.Unknown;
+        public const AudioPresentationContentType ContentVisuallyImpaired = AudioPresentationContentType.VisuallyImpaired;
+        public const AudioPresentationContentType ContentVoiceover = AudioPresentationContentType.Voiceover;
     }
+    public enum AudioPresentationContentType {
+        Commentary = 5,
+        Dialog = 4,
+        Emergency = 6,
+        HearingImpaired = 3,
+        Main = 0,
+        MusicAndEffects = 1,
+        Unknown = -1,
+        VisuallyImpaired = 2,
+        Voiceover = 7,
+    }
+    public class AudioProfile : Object {
+        public const AudioEncapsulationType AudioEncapsulationTypeIec61937 = AudioEncapsulationType.Iec61937;
+        public const AudioEncapsulationType AudioEncapsulationTypeNone = AudioEncapsulationType.None;
+        protected AudioProfile(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual int EncapsulationType { get; }
+        public virtual int Format { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual int[] GetChannelIndexMasks();
+        public virtual int[] GetChannelMasks();
+        public virtual int[] GetSampleRates();
+    }
     public class AudioRecord : Object, IAudioRecordingMonitor, IAudioRouting, IDisposable, IJavaObject, IJavaPeerable, IMicrophoneDirection {
+        public virtual LogSessionId LogSessionId { get; set; }
         public class Builder : Object {
+            public virtual AudioRecord.Builder SetContext(Context context);
         }
     }
     public class AudioTrack : Object, IAudioRouting, IDisposable, IJavaObject, IJavaPeerable, IVolumeAutomation {
+        public virtual LogSessionId LogSessionId { get; set; }
+        public virtual int StartThresholdInFrames { get; }
+        public virtual int SetStartThresholdInFrames(int startThresholdInFrames);
     }
     public enum BitrateMode {
+        CbrFd = 3,
     }
     public class CamcorderProfile : Object {
+        public const CamcorderQuality Quality8kuhd = CamcorderQuality.Q8Kuhd;
+        public const CamcorderQuality QualityTimeLapse8kuhd = CamcorderQuality.TimeLapse8kuhd;
+        public static EncoderProfiles? GetAll(string cameraId, int quality);
     }
     public enum CamcorderQuality {
+        Q8Kuhd = 13,
+        TimeLapse8kuhd = 1013,
     }
+    public enum DrmErrorCode {
+        CertificateMalformed = 10,
+        CertificateMissing = 11,
+        CryptoLibrary = 12,
+        FrameTooLarge = 8,
+        GenericOem = 13,
+        GenericPlugin = 14,
+        InitData = 15,
+        InsufficientOutputProtection = 4,
+        InsufficientSecurity = 7,
+        KeyExpired = 2,
+        KeyNotLoaded = 16,
+        LicenseParse = 17,
+        LicensePolicy = 18,
+        LicenseRelease = 19,
+        LicenseRequestRejected = 20,
+        LicenseRestore = 21,
+        LicenseState = 22,
+        LostState = 9,
+        MediaFramework = 23,
+        NoKey = 1,
+        ProvisioningCertificate = 24,
+        ProvisioningConfig = 25,
+        ProvisioningParse = 26,
+        ProvisioningRequestRejected = 27,
+        ProvisioningRetry = 28,
+        ResourceBusy = 3,
+        ResourceContention = 29,
+        SecureStopRelease = 30,
+        SessionNotOpened = 5,
+        StorageRead = 31,
+        StorageWrite = 32,
+        Unknown = 0,
+        UnsupportedOperation = 6,
+        ZeroSubsamples = 33,
+    }
     public abstract class DrmInitData : Object {
         public sealed class SchemeInitData : Object {
+            public SchemeInitData(UUID uuid, string mimeType, byte[] data);
         }
     }
+    public enum EncodedSurroundOutput {
+        Always = 2,
+        Auto = 0,
+        Manual = 3,
+        Never = 1,
+        Unknown = -1,
+    }
+    public sealed class EncoderProfiles : Object {
+        public IList<EncoderProfiles.AudioProfile> AudioProfiles { get; }
+        public int DefaultDurationSeconds { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int RecommendedFileFormat { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public IList<EncoderProfiles.VideoProfile> VideoProfiles { get; }
+        public sealed class AudioProfile : Object {
+            public int Bitrate { get; }
+            public int Channels { get; }
+            public int Codec { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public string MediaType { get; }
+            public int Profile { get; }
+            public int SampleRate { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class VideoProfile : Object {
+            public int Bitrate { get; }
+            public int Codec { get; }
+            public int FrameRate { get; }
+            public int Height { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public string MediaType { get; }
+            public int Profile { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public int Width { get; }
+        }
+    }
     public enum Encoding {
+        Dra = 28,
+        DtsUhd = 27,
+        MpeghBlL3 = 23,
+        MpeghBlL4 = 24,
+        MpeghLcL3 = 25,
+        MpeghLcL4 = 26,
+        Pcm24bitPacked = 21,
+        Pcm32bit = 22,
     }
     public class ExifInterface : Object {
+        public virtual long DateTime { get; }
+        public virtual long DateTimeDigitized { get; }
+        public virtual long DateTimeOriginal { get; }
+        public virtual long GpsDateTime { get; }
     }
     public sealed class MediaCas : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public MediaCas(Context context, int casSystemId, string? tvInputServiceSessionId, int priorityHint, Handler? handler, MediaCas.IEventListener? listener);
-        public MediaCas(int CA_system_id);
+        public MediaCas(int casSystemId);
     }
     public sealed class MediaCodec : Object {
+        public const string ParameterKeyTunnelPeek = "tunnel-peek";
+        public IList<string> SupportedVendorParameters { get; }
+        public MediaCodec.ParameterDescriptor? GetParameterDescriptor(string name);
+        public void SetOnFirstTunnelFrameReadyListener(Handler? handler, MediaCodec.IOnFirstTunnelFrameReadyListener? listener);
+        public void SubscribeToVendorParameters(IList<string> names);
+        public void UnsubscribeFromVendorParameters(IList<string> names);
         public sealed class CryptoInfo : Object {
+            public MediaCodec.CryptoInfo.Pattern GetPattern();
         }
+        public class FirstTunnelFrameReadyEventArgs : EventArgs {
+            public FirstTunnelFrameReadyEventArgs(MediaCodec codec);
+            public MediaCodec Codec { get; }
+        }
+        public interface IOnFirstTunnelFrameReadyListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnFirstTunnelFrameReady(MediaCodec codec);
+        }
+        public class ParameterDescriptor : Object {
+            protected ParameterDescriptor(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual string Name { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual int Type { get; }
+        }
     }
     public sealed class MediaCodecInfo : Object {
         public sealed class AudioCapabilities : Object {
+            public int MinInputChannelCount { get; }
+            public Range[] GetInputChannelCountRanges();
         }
         public sealed class CodecCapabilities : Object {
+            public const string FEATUREQpBounds = "qp-bounds";
         }
         public sealed class EncoderCapabilities : Object {
+            public const BitrateMode BitrateModeCbrFd = BitrateMode.CbrFd;
         }
     }
+    public class MediaCommunicationManager : Object {
+        protected MediaCommunicationManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual IList<Session2Token> Session2Tokens { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual int Version { get; }
+    }
     public sealed class MediaDrm : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public IList<MediaDrm.LogMessage> LogMessages { get; }
+        public MediaDrm.PlaybackComponent? GetPlaybackComponent(byte[] sessionId);
+        public bool RequiresSecureDecoder(string mime);
+        public bool RequiresSecureDecoder(string mime, int level);
+        public sealed class ErrorCodes : Object {
+            public const DrmErrorCode ErrorCertificateMalformed = DrmErrorCode.CertificateMalformed;
+            public const DrmErrorCode ErrorCertificateMissing = DrmErrorCode.CertificateMissing;
+            public const DrmErrorCode ErrorCryptoLibrary = DrmErrorCode.CryptoLibrary;
+            public const DrmErrorCode ErrorFrameTooLarge = DrmErrorCode.FrameTooLarge;
+            public const DrmErrorCode ErrorGenericOem = DrmErrorCode.GenericOem;
+            public const DrmErrorCode ErrorGenericPlugin = DrmErrorCode.GenericPlugin;
+            public const DrmErrorCode ErrorInitData = DrmErrorCode.InitData;
+            public const DrmErrorCode ErrorInsufficientOutputProtection = DrmErrorCode.InsufficientOutputProtection;
+            public const DrmErrorCode ErrorInsufficientSecurity = DrmErrorCode.InsufficientSecurity;
+            public const DrmErrorCode ErrorKeyExpired = DrmErrorCode.KeyExpired;
+            public const DrmErrorCode ErrorKeyNotLoaded = DrmErrorCode.KeyNotLoaded;
+            public const DrmErrorCode ErrorLicenseParse = DrmErrorCode.LicenseParse;
+            public const DrmErrorCode ErrorLicensePolicy = DrmErrorCode.LicensePolicy;
+            public const DrmErrorCode ErrorLicenseRelease = DrmErrorCode.LicenseRelease;
+            public const DrmErrorCode ErrorLicenseRequestRejected = DrmErrorCode.LicenseRequestRejected;
+            public const DrmErrorCode ErrorLicenseRestore = DrmErrorCode.LicenseRestore;
+            public const DrmErrorCode ErrorLicenseState = DrmErrorCode.LicenseState;
+            public const DrmErrorCode ErrorLostState = DrmErrorCode.LostState;
+            public const DrmErrorCode ErrorMediaFramework = DrmErrorCode.MediaFramework;
+            public const DrmErrorCode ErrorNoKey = DrmErrorCode.NoKey;
+            public const DrmErrorCode ErrorProvisioningCertificate = DrmErrorCode.ProvisioningCertificate;
+            public const DrmErrorCode ErrorProvisioningConfig = DrmErrorCode.ProvisioningConfig;
+            public const DrmErrorCode ErrorProvisioningParse = DrmErrorCode.ProvisioningParse;
+            public const DrmErrorCode ErrorProvisioningRequestRejected = DrmErrorCode.ProvisioningRequestRejected;
+            public const DrmErrorCode ErrorProvisioningRetry = DrmErrorCode.ProvisioningRetry;
+            public const DrmErrorCode ErrorResourceBusy = DrmErrorCode.ResourceBusy;
+            public const DrmErrorCode ErrorResourceContention = DrmErrorCode.ResourceContention;
+            public const DrmErrorCode ErrorSecureStopRelease = DrmErrorCode.SecureStopRelease;
+            public const DrmErrorCode ErrorSessionNotOpened = DrmErrorCode.SessionNotOpened;
+            public const DrmErrorCode ErrorStorageRead = DrmErrorCode.StorageRead;
+            public const DrmErrorCode ErrorStorageWrite = DrmErrorCode.StorageWrite;
+            public const DrmErrorCode ErrorUnknown = DrmErrorCode.Unknown;
+            public const DrmErrorCode ErrorUnsupportedOperation = DrmErrorCode.UnsupportedOperation;
+            public const DrmErrorCode ErrorZeroSubsamples = DrmErrorCode.ZeroSubsamples;
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class LogMessage : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            public string Message { get; }
+            public int Priority { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public long TimestampMillis { get; }
+        }
         public sealed class MediaDrmStateException : IllegalStateException {
+            public int ErrorCode { get; }
+            public bool IsTransient { get; }
         }
+        public sealed class PlaybackComponent : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            public LogSessionId LogSessionId { get; set; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
         public sealed class SessionException : RuntimeException {
+            public bool IsTransient { get; }
         }
     }
     public sealed class MediaExtractor : Object {
+        public LogSessionId LogSessionId { get; set; }
     }
+    public sealed class MediaFeature : Object {
+        public MediaFeature();
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class HdrType : Object {
+            public const string DolbyVision = "android.media.feature.hdr.dolby_vision";
+            public const string Hdr10 = "android.media.feature.hdr.hdr10";
+            public const string Hdr10Plus = "android.media.feature.hdr.hdr10_plus";
+            public const string Hlg = "android.media.feature.hdr.hlg";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+    }
     public sealed class MediaFormat : Object {
+        public const string KeyAllowFrameDrop = "allow-frame-drop";
+        public const string KeyColorTransferRequest = "color-transfer-request";
+        public const string KeyMpeghCompatibleSets = "mpegh-compatible-sets";
+        public const string KeyMpeghProfileLevelIndication = "mpegh-profile-level-indication";
+        public const string KeyMpeghReferenceChannelLayout = "mpegh-reference-channel-layout";
+        public const string KeySlowMotionMarkers = "slow-motion-markers";
+        public const string KeyVideoQpBMax = "video-qp-b-max";
+        public const string KeyVideoQpBMin = "video-qp-b-min";
+        public const string KeyVideoQpIMax = "video-qp-i-max";
+        public const string KeyVideoQpIMin = "video-qp-i-min";
+        public const string KeyVideoQpMax = "video-qp-max";
+        public const string KeyVideoQpMin = "video-qp-min";
+        public const string KeyVideoQpPMax = "video-qp-p-max";
+        public const string KeyVideoQpPMin = "video-qp-p-min";
+        public const string MimetypeAudioMpeghMha1 = "audio/mha1";
+        public const string MimetypeAudioMpeghMhm1 = "audio/mhm1";
     }
     public sealed class MediaMetadata : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int BitmapDimensionLimit { get; }
         public sealed class Builder : Object {
+            public MediaMetadata.Builder SetBitmapDimensionLimit(int bitmapDimensionLimit);
         }
     }
     public class MediaMetadataRetriever : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public const MetadataKey MetadataKeyBitsPerSample = MetadataKey.BitsPerSample;
+        public const MetadataKey MetadataKeySamplerate = MetadataKey.SampleRate;
+        public const MetadataKey MetadataKeyXmpLength = MetadataKey.XmpLength;
+        public const MetadataKey MetadataKeyXmpOffset = MetadataKey.XmpOffset;
     }
     public sealed class MediaParser : Object {
+        public LogSessionId LogSessionId { get; set; }
     }
     public class MediaRecorder : Object, IAudioRecordingMonitor, IAudioRouting, IDisposable, IJavaObject, IJavaPeerable, IMicrophoneDirection {
+        public MediaRecorder(Context context);
+        public virtual LogSessionId LogSessionId { get; set; }
+        public virtual void SetAudioProfile(EncoderProfiles.AudioProfile profile);
+        public virtual void SetVideoProfile(EncoderProfiles.VideoProfile profile);
     }
     public sealed class MediaRouter2 : Object {
+        public MediaRouter2.RoutingController? GetController(string id);
     }
-    public class MediaSyncEvent : Object {
+    public class MediaSyncEvent : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public virtual int DescribeContents();
+        public virtual void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
     }
     public enum MetadataKey {
+        BitsPerSample = 39,
+        SampleRate = 38,
+        XmpLength = 42,
+        XmpOffset = 41,
     }
+    public enum PlaybackOffload {
+        GaplessSupported = 2,
+        NotSupported = 0,
+        Supported = 1,
+    }
     public class Ringtone : Object {
+        public virtual bool IsHapticGeneratorEnabled { get; }
+        public virtual bool SetHapticGeneratorEnabled(bool enabled);
     }
     public enum SoundEffect {
+        Back = 10,
     }
 }

Android.Media.Audiofx

 namespace Android.Media.Audiofx {
     public class AudioEffect : Object {
-        public static UUID EffectTypeAec { get; }
+        public static UUID? EffectTypeAec { get; }
-        public static UUID EffectTypeAgc { get; }
+        public static UUID? EffectTypeAgc { get; }
-        public static UUID EffectTypeBassBoost { get; }
+        public static UUID? EffectTypeBassBoost { get; }
-        public static UUID EffectTypeDynamicsProcessing { get; }
+        public static UUID? EffectTypeDynamicsProcessing { get; }
-        public static UUID EffectTypeEnvReverb { get; }
+        public static UUID? EffectTypeEnvReverb { get; }
-        public static UUID EffectTypeEqualizer { get; }
+        public static UUID? EffectTypeEqualizer { get; }
+        public static UUID EffectTypeHapticGenerator { get; }
-        public static UUID EffectTypeLoudnessEnhancer { get; }
+        public static UUID? EffectTypeLoudnessEnhancer { get; }
-        public static UUID EffectTypeNs { get; }
+        public static UUID? EffectTypeNs { get; }
-        public static UUID EffectTypePresetReverb { get; }
+        public static UUID? EffectTypePresetReverb { get; }
-        public static UUID EffectTypeVirtualizer { get; }
+        public static UUID? EffectTypeVirtualizer { get; }
-        public virtual AudioEffect.Descriptor GetDescriptor();
+        public virtual AudioEffect.Descriptor? GetDescriptor();
-        public virtual void SetControlStatusListener(AudioEffect.IOnControlStatusChangeListener listener);
+        public virtual void SetControlStatusListener(AudioEffect.IOnControlStatusChangeListener? listener);
-        public virtual void SetEnableStatusListener(AudioEffect.IOnEnableStatusChangeListener listener);
+        public virtual void SetEnableStatusListener(AudioEffect.IOnEnableStatusChangeListener? listener);
     }
+    public class HapticGenerator : AudioEffect, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        protected HapticGenerator(IntPtr javaReference, JniHandleOwnership transfer);
+        public static bool IsAvailable { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void Close();
+        public static HapticGenerator Create(int audioSession);
+    }
 }

Android.Media.Metrics

+namespace Android.Media.Metrics {
+    public abstract class Event : Object {
+        protected Event(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual Bundle MetricsBundle { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual long TimeSinceCreatedMillis { get; }
+    }
+    public sealed class LogSessionId : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public static LogSessionId LogSessionIdNone { get; }
+        public string StringId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class MediaMetricsManager : Object {
+        public const long InvalidTimestamp = (long)-1;
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public PlaybackSession CreatePlaybackSession();
+        public RecordingSession CreateRecordingSession();
+    }
+    public sealed class NetworkEvent : Event, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const NetworkType NetworkType2g = NetworkType.Type2g;
+        public const NetworkType NetworkType3g = NetworkType.Type3g;
+        public const NetworkType NetworkType4g = NetworkType.Type4g;
+        public const NetworkType NetworkType5gNsa = NetworkType.Type5gNsa;
+        public const NetworkType NetworkType5gSa = NetworkType.Type5gSa;
+        public const NetworkType NetworkTypeEthernet = NetworkType.Ethernet;
+        public const NetworkType NetworkTypeOffline = NetworkType.Offline;
+        public const NetworkType NetworkTypeOther = NetworkType.Other;
+        public const NetworkType NetworkTypeUnknown = NetworkType.Unknown;
+        public const NetworkType NetworkTypeWifi = NetworkType.Wifi;
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int NetworkType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public NetworkEvent Build();
+            public NetworkEvent.Builder SetMetricsBundle(Bundle metricsBundle);
+            public NetworkEvent.Builder SetNetworkType(int value);
+            public NetworkEvent.Builder SetTimeSinceCreatedMillis(long value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum NetworkType {
+        Ethernet = 3,
+        Offline = 9,
+        Other = 1,
+        Type2g = 4,
+        Type3g = 5,
+        Type4g = 6,
+        Type5gNsa = 7,
+        Type5gSa = 8,
+        Unknown = 0,
+        Wifi = 2,
+    }
+    public enum PlaybackContentType {
+        Ad = 2,
+        Main = 1,
+        Other = 3,
+        Unknown = 0,
+    }
+    public enum PlaybackDrmType {
+        Clearkey = 6,
+        None = 0,
+        Other = 1,
+        PlayReady = 2,
+        WidevineL1 = 3,
+        WidevineL3 = 4,
+        WvL3Fallback = 5,
+    }
+    public enum PlaybackError {
+        AudioTrackInitFailed = 17,
+        AudioTrackOther = 19,
+        AudioTrackWriteFailed = 18,
+        DecoderInitFailed = 13,
+        DecodingFailed = 14,
+        DecodingFormatExceedsCapabilities = 15,
+        DecodingFormatUnsupported = 35,
+        DecodingOther = 16,
+        DrmContentError = 28,
+        DrmDeviceRevoked = 29,
+        DrmDisallowedOperation = 26,
+        DrmLicenseAcquisitionFailed = 25,
+        DrmOther = 30,
+        DrmProvisioningFailed = 24,
+        DrmSchemeUnsupported = 23,
+        DrmSystemError = 27,
+        IoBadHttpStatus = 5,
+        IoConnectionClosed = 8,
+        IoConnectionTimeout = 7,
+        IoDnsFailed = 6,
+        IoFileNotFound = 31,
+        IoNetworkConnectionFailed = 4,
+        IoNetworkUnavailable = 3,
+        IoNoPermission = 32,
+        IoOther = 9,
+        Other = 1,
+        ParsingContainerMalformed = 11,
+        ParsingContainerUnsupported = 34,
+        ParsingManifestMalformed = 10,
+        ParsingManifestUnsupported = 33,
+        ParsingOther = 12,
+        PlayerBehindLiveWindow = 21,
+        PlayerOther = 22,
+        PlayerRemote = 20,
+        Runtime = 2,
+        Unknown = 0,
+    }
+    public sealed class PlaybackErrorEvent : Event, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PlaybackError ErrorAudioTrackInitFailed = PlaybackError.AudioTrackInitFailed;
+        public const PlaybackError ErrorAudioTrackOther = PlaybackError.AudioTrackOther;
+        public const PlaybackError ErrorAudioTrackWriteFailed = PlaybackError.AudioTrackWriteFailed;
+        public const PlaybackError ErrorDecoderInitFailed = PlaybackError.DecoderInitFailed;
+        public const PlaybackError ErrorDecodingFailed = PlaybackError.DecodingFailed;
+        public const PlaybackError ErrorDecodingFormatExceedsCapabilities = PlaybackError.DecodingFormatExceedsCapabilities;
+        public const PlaybackError ErrorDecodingFormatUnsupported = PlaybackError.DecodingFormatUnsupported;
+        public const PlaybackError ErrorDecodingOther = PlaybackError.DecodingOther;
+        public const PlaybackError ErrorDrmContentError = PlaybackError.DrmContentError;
+        public const PlaybackError ErrorDrmDeviceRevoked = PlaybackError.DrmDeviceRevoked;
+        public const PlaybackError ErrorDrmDisallowedOperation = PlaybackError.DrmDisallowedOperation;
+        public const PlaybackError ErrorDrmLicenseAcquisitionFailed = PlaybackError.DrmLicenseAcquisitionFailed;
+        public const PlaybackError ErrorDrmOther = PlaybackError.DrmOther;
+        public const PlaybackError ErrorDrmProvisioningFailed = PlaybackError.DrmProvisioningFailed;
+        public const PlaybackError ErrorDrmSchemeUnsupported = PlaybackError.DrmSchemeUnsupported;
+        public const PlaybackError ErrorDrmSystemError = PlaybackError.DrmSystemError;
+        public const PlaybackError ErrorIoBadHttpStatus = PlaybackError.IoBadHttpStatus;
+        public const PlaybackError ErrorIoConnectionClosed = PlaybackError.IoConnectionClosed;
+        public const PlaybackError ErrorIoConnectionTimeout = PlaybackError.IoConnectionTimeout;
+        public const PlaybackError ErrorIoDnsFailed = PlaybackError.IoDnsFailed;
+        public const PlaybackError ErrorIoFileNotFound = PlaybackError.IoFileNotFound;
+        public const PlaybackError ErrorIoNetworkConnectionFailed = PlaybackError.IoNetworkConnectionFailed;
+        public const PlaybackError ErrorIoNetworkUnavailable = PlaybackError.IoNetworkUnavailable;
+        public const PlaybackError ErrorIoNoPermission = PlaybackError.IoNoPermission;
+        public const PlaybackError ErrorIoOther = PlaybackError.IoOther;
+        public const PlaybackError ErrorOther = PlaybackError.Other;
+        public const PlaybackError ErrorParsingContainerMalformed = PlaybackError.ParsingContainerMalformed;
+        public const PlaybackError ErrorParsingContainerUnsupported = PlaybackError.ParsingContainerUnsupported;
+        public const PlaybackError ErrorParsingManifestMalformed = PlaybackError.ParsingManifestMalformed;
+        public const PlaybackError ErrorParsingManifestUnsupported = PlaybackError.ParsingManifestUnsupported;
+        public const PlaybackError ErrorParsingOther = PlaybackError.ParsingOther;
+        public const PlaybackError ErrorPlayerBehindLiveWindow = PlaybackError.PlayerBehindLiveWindow;
+        public const PlaybackError ErrorPlayerOther = PlaybackError.PlayerOther;
+        public const PlaybackError ErrorPlayerRemote = PlaybackError.PlayerRemote;
+        public const PlaybackError ErrorRuntime = PlaybackError.Runtime;
+        public const PlaybackError ErrorUnknown = PlaybackError.Unknown;
+        public static IParcelableCreator Creator { get; }
+        public int ErrorCode { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int SubErrorCode { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public PlaybackErrorEvent Build();
+            public PlaybackErrorEvent.Builder SetErrorCode(int value);
+            public PlaybackErrorEvent.Builder SetException(Exception value);
+            public PlaybackErrorEvent.Builder SetMetricsBundle(Bundle metricsBundle);
+            public PlaybackErrorEvent.Builder SetSubErrorCode(int value);
+            public PlaybackErrorEvent.Builder SetTimeSinceCreatedMillis(long value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class PlaybackMetrics : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PlaybackContentType ContentTypeAd = PlaybackContentType.Ad;
+        public const PlaybackContentType ContentTypeMain = PlaybackContentType.Main;
+        public const PlaybackContentType ContentTypeOther = PlaybackContentType.Other;
+        public const PlaybackContentType ContentTypeUnknown = PlaybackContentType.Unknown;
+        public const PlaybackDrmType DrmTypeClearkey = PlaybackDrmType.Clearkey;
+        public const PlaybackDrmType DrmTypeNone = PlaybackDrmType.None;
+        public const PlaybackDrmType DrmTypeOther = PlaybackDrmType.Other;
+        public const PlaybackDrmType DrmTypePlayReady = PlaybackDrmType.PlayReady;
+        public const PlaybackDrmType DrmTypeWidevineL1 = PlaybackDrmType.WidevineL1;
+        public const PlaybackDrmType DrmTypeWidevineL3 = PlaybackDrmType.WidevineL3;
+        public const PlaybackDrmType DrmTypeWvL3Fallback = PlaybackDrmType.WvL3Fallback;
+        public const PlaybackStreamSource StreamSourceDevice = PlaybackStreamSource.Device;
+        public const PlaybackStreamSource StreamSourceMixed = PlaybackStreamSource.Mixed;
+        public const PlaybackStreamSource StreamSourceNetwork = PlaybackStreamSource.Network;
+        public const PlaybackStreamSource StreamSourceUnknown = PlaybackStreamSource.Unknown;
+        public const PlaybackStreamType StreamTypeDash = PlaybackStreamType.Dash;
+        public const PlaybackStreamType StreamTypeHls = PlaybackStreamType.Hls;
+        public const PlaybackStreamType StreamTypeOther = PlaybackStreamType.Other;
+        public const PlaybackStreamType StreamTypeProgressive = PlaybackStreamType.Progressive;
+        public const PlaybackStreamType StreamTypeSs = PlaybackStreamType.Ss;
+        public const PlaybackStreamType StreamTypeUnknown = PlaybackStreamType.Unknown;
+        public const PlaybackType PlaybackTypeLive = PlaybackType.Live;
+        public const PlaybackType PlaybackTypeOther = PlaybackType.Other;
+        public const PlaybackType PlaybackTypeUnknown = PlaybackType.Unknown;
+        public const PlaybackType PlaybackTypeVod = PlaybackType.Vod;
+        public int AudioUnderrunCount { get; }
+        public int ContentType { get; }
+        public static IParcelableCreator Creator { get; }
+        public int DrmType { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public long LocalBytesRead { get; }
+        public long MediaDurationMillis { get; }
+        public Bundle MetricsBundle { get; }
+        public long NetworkBytesRead { get; }
+        public long NetworkTransferDurationMillis { get; }
+        public int PlaybackType { get; }
+        public string? PlayerName { get; }
+        public string? PlayerVersion { get; }
+        public int StreamSource { get; }
+        public int StreamType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int VideoFramesDropped { get; }
+        public int VideoFramesPlayed { get; }
+        public int DescribeContents();
+        public byte[] GetDrmSessionId();
+        public long[] GetExperimentIds();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public PlaybackMetrics.Builder AddExperimentId(long value);
+            public PlaybackMetrics Build();
+            public PlaybackMetrics.Builder SetAudioUnderrunCount(int value);
+            public PlaybackMetrics.Builder SetContentType(int value);
+            public PlaybackMetrics.Builder SetDrmSessionId(byte[] drmSessionId);
+            public PlaybackMetrics.Builder SetDrmType(int value);
+            public PlaybackMetrics.Builder SetLocalBytesRead(long value);
+            public PlaybackMetrics.Builder SetMediaDurationMillis(long value);
+            public PlaybackMetrics.Builder SetMetricsBundle(Bundle metricsBundle);
+            public PlaybackMetrics.Builder SetNetworkBytesRead(long value);
+            public PlaybackMetrics.Builder SetNetworkTransferDurationMillis(long value);
+            public PlaybackMetrics.Builder SetPlaybackType(int value);
+            public PlaybackMetrics.Builder SetPlayerName(string value);
+            public PlaybackMetrics.Builder SetPlayerVersion(string value);
+            public PlaybackMetrics.Builder SetStreamSource(int value);
+            public PlaybackMetrics.Builder SetStreamType(int value);
+            public PlaybackMetrics.Builder SetVideoFramesDropped(int value);
+            public PlaybackMetrics.Builder SetVideoFramesPlayed(int value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class PlaybackSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public LogSessionId SessionId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+        public void ReportNetworkEvent(NetworkEvent e);
+        public void ReportPlaybackErrorEvent(PlaybackErrorEvent e);
+        public void ReportPlaybackMetrics(PlaybackMetrics metrics);
+        public void ReportPlaybackStateEvent(PlaybackStateEvent e);
+        public void ReportTrackChangeEvent(TrackChangeEvent e);
+    }
+    public enum PlaybackState {
+        Abandoned = 15,
+        Buffering = 6,
+        Ended = 11,
+        Failed = 13,
+        InterruptedByAd = 14,
+        JoiningBackground = 1,
+        JoiningForeground = 2,
+        NotStarted = 0,
+        Paused = 4,
+        PausedBuffering = 7,
+        Playing = 3,
+        Seeking = 5,
+        Stopped = 12,
+        Suppressed = 9,
+        SuppressedBuffering = 10,
+    }
+    public sealed class PlaybackStateEvent : Event, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PlaybackState StateAbandoned = PlaybackState.Abandoned;
+        public const PlaybackState StateBuffering = PlaybackState.Buffering;
+        public const PlaybackState StateEnded = PlaybackState.Ended;
+        public const PlaybackState StateFailed = PlaybackState.Failed;
+        public const PlaybackState StateInterruptedByAd = PlaybackState.InterruptedByAd;
+        public const PlaybackState StateJoiningBackground = PlaybackState.JoiningBackground;
+        public const PlaybackState StateJoiningForeground = PlaybackState.JoiningForeground;
+        public const PlaybackState StateNotStarted = PlaybackState.NotStarted;
+        public const PlaybackState StatePaused = PlaybackState.Paused;
+        public const PlaybackState StatePausedBuffering = PlaybackState.PausedBuffering;
+        public const PlaybackState StatePlaying = PlaybackState.Playing;
+        public const PlaybackState StateSeeking = PlaybackState.Seeking;
+        public const PlaybackState StateStopped = PlaybackState.Stopped;
+        public const PlaybackState StateSuppressed = PlaybackState.Suppressed;
+        public const PlaybackState StateSuppressedBuffering = PlaybackState.SuppressedBuffering;
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int State { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public PlaybackStateEvent Build();
+            public PlaybackStateEvent.Builder SetMetricsBundle(Bundle metricsBundle);
+            public PlaybackStateEvent.Builder SetState(int value);
+            public PlaybackStateEvent.Builder SetTimeSinceCreatedMillis(long value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum PlaybackStreamSource {
+        Device = 2,
+        Mixed = 3,
+        Network = 1,
+        Unknown = 0,
+    }
+    public enum PlaybackStreamType {
+        Dash = 3,
+        Hls = 4,
+        Other = 1,
+        Progressive = 2,
+        Ss = 5,
+        Unknown = 0,
+    }
+    public enum PlaybackType {
+        Live = 2,
+        Other = 3,
+        Unknown = 0,
+        Vod = 1,
+    }
+    public sealed class RecordingSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public LogSessionId SessionId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+    }
+    public sealed class TrackChangeEvent : Event, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TrackChangeReason TrackChangeReasonAdaptive = TrackChangeReason.Adaptive;
+        public const TrackChangeReason TrackChangeReasonInitial = TrackChangeReason.Initial;
+        public const TrackChangeReason TrackChangeReasonManual = TrackChangeReason.Manual;
+        public const TrackChangeReason TrackChangeReasonOther = TrackChangeReason.Other;
+        public const TrackChangeReason TrackChangeReasonUnknown = TrackChangeReason.Unknown;
+        public const TrackState TrackStateOff = TrackState.Off;
+        public const TrackState TrackStateOn = TrackState.On;
+        public const TrackType TrackTypeAudio = TrackType.Audio;
+        public const TrackType TrackTypeText = TrackType.Text;
+        public const TrackType TrackTypeVideo = TrackType.Video;
+        public int AudioSampleRate { get; }
+        public int Bitrate { get; }
+        public int ChannelCount { get; }
+        public string CodecName { get; }
+        public string ContainerMimeType { get; }
+        public static IParcelableCreator Creator { get; }
+        public int Height { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Language { get; }
+        public string LanguageRegion { get; }
+        public string SampleMimeType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int TrackChangeReason { get; }
+        public int TrackState { get; }
+        public int TrackType { get; }
+        public float VideoFrameRate { get; }
+        public int Width { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(int type);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TrackChangeEvent Build();
+            public TrackChangeEvent.Builder SetAudioSampleRate(int value);
+            public TrackChangeEvent.Builder SetBitrate(int value);
+            public TrackChangeEvent.Builder SetChannelCount(int value);
+            public TrackChangeEvent.Builder SetCodecName(string value);
+            public TrackChangeEvent.Builder SetContainerMimeType(string value);
+            public TrackChangeEvent.Builder SetHeight(int value);
+            public TrackChangeEvent.Builder SetLanguage(string value);
+            public TrackChangeEvent.Builder SetLanguageRegion(string value);
+            public TrackChangeEvent.Builder SetMetricsBundle(Bundle metricsBundle);
+            public TrackChangeEvent.Builder SetSampleMimeType(string value);
+            public TrackChangeEvent.Builder SetTimeSinceCreatedMillis(long value);
+            public TrackChangeEvent.Builder SetTrackChangeReason(int value);
+            public TrackChangeEvent.Builder SetTrackState(int value);
+            public TrackChangeEvent.Builder SetVideoFrameRate(float value);
+            public TrackChangeEvent.Builder SetWidth(int value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum TrackChangeReason {
+        Adaptive = 4,
+        Initial = 2,
+        Manual = 3,
+        Other = 1,
+        Unknown = 0,
+    }
+    public enum TrackState {
+        Off = 0,
+        On = 1,
+    }
+    public enum TrackType {
+        Audio = 0,
+        Text = 2,
+        Video = 1,
+    }
+}

Android.Media.Session

 namespace Android.Media.Session {
     public sealed class MediaSession : Object {
+        public void SetMediaButtonBroadcastReceiver(ComponentName? broadcastReceiver);
     }
     public sealed class MediaSessionManager : Object {
-        public void RemoveOnActiveSessionsChangedListener(MediaSessionManager.IOnActiveSessionsChangedListener listener);
+        public void RemoveOnActiveSessionsChangedListener(MediaSessionManager.IOnActiveSessionsChangedListener sessionListener);
     }
     public sealed class PlaybackState : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const long ActionSetPlaybackSpeed = (long)4194304;
+        public bool IsActive { get; }
     }
 }

Android.Media.TV

 namespace Android.Media.TV {
     public sealed class TvContract : Object {
         public sealed class Channels : Object {
+            public const string ColumnBroadcastGenre = "broadcast_genre";
+            public const string ColumnChannelListId = "channel_list_id";
+            public const string ColumnRemoteControlKeyPresetNumber = "remote_control_key_preset_number";
+            public const string ColumnScrambled = "scrambled";
+            public const string ColumnVideoResolution = "video_resolution";
         }
     }
     public sealed class TvInputInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool CanPauseRecording();
         public sealed class Builder : Object {
+            public TvInputInfo.Builder SetCanPauseRecording(bool canPauseRecording);
         }
     }
     public abstract class TvInputService : Service {
         public abstract class RecordingSession : Object {
+            public virtual void OnPauseRecording(Bundle @params);
+            public virtual void OnResumeRecording(Bundle @params);
         }
     }
     public class TvRecordingClient : Object {
+        public virtual void PauseRecording();
+        public virtual void PauseRecording(Bundle @params);
+        public virtual void ResumeRecording();
+        public virtual void ResumeRecording(Bundle @params);
     }
 }

Android.Net

 namespace Android.Net {
     public class ConnectivityManager : Object {
+        public virtual void RegisterBestMatchingNetworkCallback(NetworkRequest request, ConnectivityManager.NetworkCallback networkCallback, Handler handler);
         public class NetworkCallback : Object {
+            public const NetworkCallbackFlags FlagIncludeLocationInfo = NetworkCallbackFlags.IncludeLocationInfo;
+            public NetworkCallback(int flags);
         }
     }
     public sealed class IpSecAlgorithm : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string AuthAesCmac = "cmac(aes)";
+        public const string AuthAesXcbc = "xcbc(aes)";
+        public const string AuthCryptChacha20Poly1305 = "rfc7539esp(chacha20,poly1305)";
+        public const string CryptAesCtr = "rfc3686(ctr(aes))";
+        public static ICollection<string> SupportedAlgorithms { get; }
     }
     public enum NetCapability {
+        Enterprise = 29,
+        HeadUnit = 32,
     }
+    public enum NetworkCallbackFlags {
+        IncludeLocationInfo = 1,
+        None = 0,
+    }
     public sealed class NetworkCapabilities : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const NetCapability NetCapabilityEnterprise = NetCapability.Enterprise;
+        public const NetCapability NetCapabilityHeadUnit = NetCapability.HeadUnit;
+        public const TransportType TransportUsb = TransportType.Usb;
+        public int[] GetCapabilities();
     }
     public class NetworkRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-        public static IParcelableCreator Creator { get; }
+        public static IParcelableCreator? Creator { get; }
-        public virtual NetworkSpecifier NetworkSpecifier { get; }
+        public virtual NetworkSpecifier? NetworkSpecifier { get; }
-        public virtual bool CanBeSatisfiedBy(NetworkCapabilities nc);
+        public virtual bool CanBeSatisfiedBy(NetworkCapabilities? nc);
+        public virtual int[] GetCapabilities();
+        public virtual int[] GetTransportTypes();
-        public virtual void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public virtual void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
         public class Builder : Object {
+            public Builder(NetworkRequest request);
-            public virtual NetworkRequest.Builder AddCapability(NetCapability capability);
+            public virtual NetworkRequest.Builder? AddCapability(NetCapability capability);
-            public virtual NetworkRequest.Builder AddTransportType(TransportType transportType);
+            public virtual NetworkRequest.Builder? AddTransportType(TransportType transportType);
-            public virtual NetworkRequest Build();
+            public virtual NetworkRequest? Build();
-            public virtual NetworkRequest.Builder RemoveCapability(NetCapability capability);
+            public virtual NetworkRequest.Builder? RemoveCapability(NetCapability capability);
-            public virtual NetworkRequest.Builder RemoveTransportType(TransportType transportType);
+            public virtual NetworkRequest.Builder? RemoveTransportType(TransportType transportType);
+            public virtual NetworkRequest.Builder SetIncludeOtherUidNetworks(bool include);
-            public virtual NetworkRequest.Builder SetNetworkSpecifier(NetworkSpecifier networkSpecifier);
+            public virtual NetworkRequest.Builder? SetNetworkSpecifier(NetworkSpecifier? networkSpecifier);
-            public virtual NetworkRequest.Builder SetNetworkSpecifier(string networkSpecifier);
+            public virtual NetworkRequest.Builder? SetNetworkSpecifier(string? networkSpecifier);
         }
     }
     public class ParseException : RuntimeException {
+        public ParseException(string response);
+        public ParseException(string response, Throwable cause);
     }
     public class TrafficStats : Object {
+        public static long GetRxBytes(string iface);
+        public static long GetTxBytes(string iface);
     }
     public enum TransportType {
+        Usb = 8,
     }
 }

Android.Net.Eap

+namespace Android.Net.Eap {
+    public sealed class EapSessionConfig : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public EapSessionConfig.EapAkaConfig? GetEapAkaConfig();
+        public EapSessionConfig.EapAkaPrimeConfig? GetEapAkaPrimeConfig();
+        public byte[] GetEapIdentity();
+        public EapSessionConfig.EapMsChapV2Config? GetEapMsChapV2Config();
+        public EapSessionConfig.EapSimConfig? GetEapSimConfig();
+        public EapSessionConfig.EapTtlsConfig? GetEapTtlsConfig();
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public EapSessionConfig Build();
+            public EapSessionConfig.Builder SetEapAkaConfig(int subId, int apptype);
+            public EapSessionConfig.Builder SetEapAkaPrimeConfig(int subId, int apptype, string networkName, bool allowMismatchedNetworkNames);
+            public EapSessionConfig.Builder SetEapIdentity(byte[] eapIdentity);
+            public EapSessionConfig.Builder SetEapMsChapV2Config(string username, string password);
+            public EapSessionConfig.Builder SetEapSimConfig(int subId, int apptype);
+            public EapSessionConfig.Builder SetEapTtlsConfig(X509Certificate? serverCaCert, EapSessionConfig innerEapSessionConfig);
+        }
+        public class EapAkaConfig : EapSessionConfig.EapMethodConfig {
+            protected EapAkaConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual int AppType { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual int SubId { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class EapAkaPrimeConfig : EapSessionConfig.EapAkaConfig {
+            protected EapAkaPrimeConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual string NetworkName { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual bool AllowsMismatchedNetworkNames();
+        }
+        public abstract class EapMethodConfig : Object {
+            public const EapType EapTypeAka = EapType.Aka;
+            public const EapType EapTypeAkaPrime = EapType.AkaPrime;
+            public const EapType EapTypeMschapV2 = EapType.MschapV2;
+            public const EapType EapTypeSim = EapType.Sim;
+            public const EapType EapTypeTtls = EapType.Ttls;
+            protected EapMethodConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual int MethodType { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class EapMsChapV2Config : EapSessionConfig.EapMethodConfig {
+            protected EapMsChapV2Config(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual string Password { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual string Username { get; }
+        }
+        public class EapSimConfig : EapSessionConfig.EapMethodConfig {
+            protected EapSimConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual int AppType { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual int SubId { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class EapTtlsConfig : EapSessionConfig.EapMethodConfig {
+            protected EapTtlsConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual EapSessionConfig InnerEapSessionConfig { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual X509Certificate? ServerCaCert { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+    }
+    public enum EapType {
+        Aka = 23,
+        AkaPrime = 50,
+        MschapV2 = 26,
+        Sim = 18,
+        Ttls = 21,
+    }
+}

Android.Net.IpSec.Ike

+namespace Android.Net.IpSec.Ike {
+    public sealed class ChildSaProposal : SaProposal {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public static ICollection<Integer> SupportedEncryptionAlgorithms { get; }
+        public static ICollection<Integer> SupportedIntegrityAlgorithms { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ChildSaProposal.Builder AddDhGroup(int dhGroup);
+            public ChildSaProposal.Builder AddEncryptionAlgorithm(int algorithm, int keyLength);
+            public ChildSaProposal.Builder AddIntegrityAlgorithm(int algorithm);
+            public ChildSaProposal Build();
+        }
+    }
+    public sealed class ChildSessionConfiguration : Object {
+        public IList<IkeTrafficSelector> InboundTrafficSelectors { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<IkeTrafficSelector> OutboundTrafficSelectors { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder(IList<IkeTrafficSelector> inTs, IList<IkeTrafficSelector> outTs);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ChildSessionConfiguration Build();
+        }
+    }
+    public abstract class ChildSessionParams : Object {
+        protected ChildSessionParams(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual IList<ChildSaProposal> ChildSaProposals { get; }
+        public virtual int HardLifetimeSeconds { get; }
+        public virtual IList<IkeTrafficSelector> InboundTrafficSelectors { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual IList<IkeTrafficSelector> OutboundTrafficSelectors { get; }
+        public virtual int SoftLifetimeSeconds { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public interface IChildSessionCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnClosed();
+        void OnClosedWithException(IkeException exception);
+        void OnIpSecTransformCreated(IpSecTransform ipSecTransform, int direction);
+        void OnIpSecTransformDeleted(IpSecTransform ipSecTransform, int direction);
+        void OnOpened(ChildSessionConfiguration sessionConfiguration);
+    }
+    public interface IIkeSessionCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnClosed();
+        void OnClosedWithException(IkeException exception);
+        void OnError(IkeException exception);
+        void OnOpened(IkeSessionConfiguration sessionConfiguration);
+    }
+    public sealed class IkeDerAsn1DnIdentification : IkeIdentification {
+        public IkeDerAsn1DnIdentification(X500Principal derAsn1Dn);
+        public X500Principal DerAsn1Dn { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public class IkeFqdnIdentification : IkeIdentification {
+        protected IkeFqdnIdentification(IntPtr javaReference, JniHandleOwnership transfer);
+        public IkeFqdnIdentification(string fqdn);
+        public string Fqdn { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public abstract class IkeIdentification : Object {
+        protected IkeIdentification(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeIpv4AddrIdentification : IkeIdentification {
+        public IkeIpv4AddrIdentification(Inet4Address address);
+        public Inet4Address Ipv4Address { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public class IkeIpv6AddrIdentification : IkeIdentification {
+        public IkeIpv6AddrIdentification(Inet6Address address);
+        protected IkeIpv6AddrIdentification(IntPtr javaReference, JniHandleOwnership transfer);
+        public Inet6Address Ipv6Address { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeKeyIdIdentification : IkeIdentification {
+        public IkeKeyIdIdentification(byte[] keyId);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<byte>? KeyId { get; set; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeRfc822AddrIdentification : IkeIdentification {
+        public IkeRfc822AddrIdentification(string rfc822Name);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string Rfc822Name { get; set; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeSaProposal : SaProposal {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<Integer> PseudorandomFunctions { get; }
+        public static ICollection<Integer> SupportedEncryptionAlgorithms { get; }
+        public static ICollection<Integer> SupportedIntegrityAlgorithms { get; }
+        public static ICollection<Integer> SupportedPseudorandomFunctions { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public IkeSaProposal.Builder AddDhGroup(int dhGroup);
+            public IkeSaProposal.Builder AddEncryptionAlgorithm(int algorithm, int keyLength);
+            public IkeSaProposal.Builder AddIntegrityAlgorithm(int algorithm);
+            public IkeSaProposal.Builder AddPseudorandomFunction(int algorithm);
+            public IkeSaProposal Build();
+        }
+    }
+    public sealed class IkeSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public IkeSession(Context context, IkeSessionParams ikeSessionParams, ChildSessionParams firstChildSessionParams, IExecutor userCbExecutor, IIkeSessionCallback ikeSessionCallback, IChildSessionCallback firstChildSessionCallback);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Close();
+        public void CloseChildSession(IChildSessionCallback childSessionCallback);
+        public new void Finalize();
+        public void Kill();
+        public void OpenChildSession(ChildSessionParams childSessionParams, IChildSessionCallback childSessionCallback);
+    }
+    public sealed class IkeSessionConfiguration : Object {
+        public const IkeSessionExtensionType ExtensionTypeFragmentation = IkeSessionExtensionType.Fragmentation;
+        public const IkeSessionExtensionType ExtensionTypeMobike = IkeSessionExtensionType.Mobike;
+        public IkeSessionConnectionInfo IkeSessionConnectionInfo { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string RemoteApplicationVersion { get; }
+        public IList<byte[]> RemoteVendorIds { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public bool IsIkeExtensionEnabled(int extensionType);
+        public sealed class Builder : Object {
+            public Builder(IkeSessionConnectionInfo ikeConnInfo);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public IkeSessionConfiguration.Builder AddIkeExtension(int extensionType);
+            public IkeSessionConfiguration.Builder AddRemoteVendorId(byte[] remoteVendorId);
+            public IkeSessionConfiguration Build();
+            public IkeSessionConfiguration.Builder ClearIkeExtensions();
+            public IkeSessionConfiguration.Builder ClearRemoteApplicationVersion();
+            public IkeSessionConfiguration.Builder ClearRemoteVendorIds();
+            public IkeSessionConfiguration.Builder SetRemoteApplicationVersion(string remoteApplicationVersion);
+        }
+    }
+    public sealed class IkeSessionConnectionInfo : Object {
+        public IkeSessionConnectionInfo(InetAddress localAddress, InetAddress remoteAddress, Network network);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public InetAddress LocalAddress { get; }
+        public Network Network { get; }
+        public InetAddress RemoteAddress { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum IkeSessionExtensionType {
+        Fragmentation = 1,
+        Mobike = 2,
+    }
+    public enum IkeSessionOption {
+        AcceptAnyRemoteId = 0,
+        EapOnlyAuth = 1,
+        ForcePort4500 = 3,
+        Mobike = 2,
+    }
+    public sealed class IkeSessionParams : Object {
+        public const IkeSessionOption IkeOptionAcceptAnyRemoteId = IkeSessionOption.AcceptAnyRemoteId;
+        public const IkeSessionOption IkeOptionEapOnlyAuth = IkeSessionOption.EapOnlyAuth;
+        public const IkeSessionOption IkeOptionForcePort4500 = IkeSessionOption.ForcePort4500;
+        public const IkeSessionOption IkeOptionMobike = IkeSessionOption.Mobike;
+        public int DpdDelaySeconds { get; }
+        public int HardLifetimeSeconds { get; }
+        public IList<IkeSaProposal> IkeSaProposals { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IkeSessionParams.IkeAuthConfig LocalAuthConfig { get; }
+        public IkeIdentification LocalIdentification { get; }
+        public int NattKeepAliveDelaySeconds { get; }
+        public Network? Network { get; }
+        public IkeSessionParams.IkeAuthConfig RemoteAuthConfig { get; }
+        public IkeIdentification RemoteIdentification { get; }
+        public string ServerHostname { get; }
+        public int SoftLifetimeSeconds { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int[] GetRetransmissionTimeoutsMillis();
+        public bool HasIkeOption(int ikeOption);
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(IkeSessionParams ikeSessionParams);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public IkeSessionParams.Builder AddIkeOption(int ikeOption);
+            public IkeSessionParams.Builder AddIkeSaProposal(IkeSaProposal proposal);
+            public IkeSessionParams Build();
+            public IkeSessionParams.Builder RemoveIkeOption(int ikeOption);
+            public IkeSessionParams.Builder SetAuthDigitalSignature(X509Certificate? serverCaCert, X509Certificate clientEndCert, IPrivateKey clientPrivateKey);
+            public IkeSessionParams.Builder SetAuthDigitalSignature(X509Certificate? serverCaCert, X509Certificate clientEndCert, IList<X509Certificate> clientIntermediateCerts, IPrivateKey clientPrivateKey);
+            public IkeSessionParams.Builder SetAuthEap(X509Certificate? serverCaCert, EapSessionConfig eapConfig);
+            public IkeSessionParams.Builder SetAuthPsk(byte[] sharedKey);
+            public IkeSessionParams.Builder SetDpdDelaySeconds(int dpdDelaySeconds);
+            public IkeSessionParams.Builder SetLifetimeSeconds(int hardLifetimeSeconds, int softLifetimeSeconds);
+            public IkeSessionParams.Builder SetLocalIdentification(IkeIdentification identification);
+            public IkeSessionParams.Builder SetNattKeepAliveDelaySeconds(int nattKeepaliveDelaySeconds);
+            public IkeSessionParams.Builder SetNetwork(Network? network);
+            public IkeSessionParams.Builder SetRemoteIdentification(IkeIdentification identification);
+            public IkeSessionParams.Builder SetRetransmissionTimeoutsMillis(int[] retransTimeoutMillisList);
+            public IkeSessionParams.Builder SetServerHostname(string serverHostname);
+        }
+        public abstract class IkeAuthConfig : Object {
+            protected IkeAuthConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class IkeAuthDigitalSignLocalConfig : IkeSessionParams.IkeAuthConfig {
+            protected IkeAuthDigitalSignLocalConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual X509Certificate ClientEndCertificate { get; }
+            public virtual IList<X509Certificate> IntermediateCertificates { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual IPrivateKey PrivateKey { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class IkeAuthDigitalSignRemoteConfig : IkeSessionParams.IkeAuthConfig {
+            protected IkeAuthDigitalSignRemoteConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual X509Certificate? RemoteCaCert { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class IkeAuthEapConfig : IkeSessionParams.IkeAuthConfig {
+            protected IkeAuthEapConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual EapSessionConfig EapConfig { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class IkeAuthPskConfig : IkeSessionParams.IkeAuthConfig {
+            protected IkeAuthPskConfig(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual byte[] GetPsk();
+        }
+    }
+    public sealed class IkeTrafficSelector : Object {
+        public IkeTrafficSelector(int startPort, int endPort, InetAddress startingAddress, InetAddress endingAddress);
+        public InetAddress EndingAddress { get; set; }
+        public int EndPort { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public InetAddress StartingAddress { get; set; }
+        public int StartPort { get; set; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeTunnelConnectionParams : Object {
+        public IkeTunnelConnectionParams(IkeSessionParams ikeParams, TunnelModeChildSessionParams childParams);
+        public IkeSessionParams IkeSessionParams { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public TunnelModeChildSessionParams TunnelModeChildSessionParams { get; }
+    }
+    public abstract class SaProposal : Object {
+        public const SaProposalDhGroup DhGroup1024BitModp = SaProposalDhGroup.Group1024BitModp;
+        public const SaProposalDhGroup DhGroup1536BitModp = SaProposalDhGroup.Group1536BitModp;
+        public const SaProposalDhGroup DhGroup2048BitModp = SaProposalDhGroup.Group2048BitModp;
+        public const SaProposalDhGroup DhGroup3072BitModp = SaProposalDhGroup.Group3072BitModp;
+        public const SaProposalDhGroup DhGroup4096BitModp = SaProposalDhGroup.Group4096BitModp;
+        public const SaProposalDhGroup DhGroupCurve25519 = SaProposalDhGroup.Curve25519;
+        public const SaProposalDhGroup DhGroupNone = SaProposalDhGroup.None;
+        public const SaProposalEncryptionAlgorithm EncryptionAlgorithm3des = SaProposalEncryptionAlgorithm.ThreeDes;
+        public const SaProposalEncryptionAlgorithm EncryptionAlgorithmAesCbc = SaProposalEncryptionAlgorithm.AesCbc;
+        public const SaProposalEncryptionAlgorithm EncryptionAlgorithmAesCtr = SaProposalEncryptionAlgorithm.AesCtr;
+        public const SaProposalEncryptionAlgorithm EncryptionAlgorithmAesGcm12 = SaProposalEncryptionAlgorithm.AesGcm12;
+        public const SaProposalEncryptionAlgorithm EncryptionAlgorithmAesGcm16 = SaProposalEncryptionAlgorithm.AesGcm16;
+        public const SaProposalEncryptionAlgorithm EncryptionAlgorithmAesGcm8 = SaProposalEncryptionAlgorithm.AesGcm8;
+        public const SaProposalEncryptionAlgorithm EncryptionAlgorithmChacha20Poly1305 = SaProposalEncryptionAlgorithm.Chacha20Poly1305;
+        public const SaProposalIntegrityAlgorithm IntegrityAlgorithmAesCmac96 = SaProposalIntegrityAlgorithm.AesCmac96;
+        public const SaProposalIntegrityAlgorithm IntegrityAlgorithmAesXcbc96 = SaProposalIntegrityAlgorithm.AesXcbc96;
+        public const SaProposalIntegrityAlgorithm IntegrityAlgorithmHmacSha196 = SaProposalIntegrityAlgorithm.HmacSha196;
+        public const SaProposalIntegrityAlgorithm IntegrityAlgorithmHmacSha2256128 = SaProposalIntegrityAlgorithm.HmacSha2256128;
+        public const SaProposalIntegrityAlgorithm IntegrityAlgorithmHmacSha2384192 = SaProposalIntegrityAlgorithm.HmacSha2384192;
+        public const SaProposalIntegrityAlgorithm IntegrityAlgorithmHmacSha2512256 = SaProposalIntegrityAlgorithm.HmacSha2512256;
+        public const SaProposalIntegrityAlgorithm IntegrityAlgorithmNone = SaProposalIntegrityAlgorithm.None;
+        public const SaProposalKeyLength KeyLenAes128 = SaProposalKeyLength.Aes128;
+        public const SaProposalKeyLength KeyLenAes192 = SaProposalKeyLength.Aes192;
+        public const SaProposalKeyLength KeyLenAes256 = SaProposalKeyLength.Aes256;
+        public const SaProposalKeyLength KeyLenUnused = SaProposalKeyLength.Unused;
+        public const SaProposalPseudorandomFunction PseudorandomFunctionAes128Cmac = SaProposalPseudorandomFunction.Aes128Cmac;
+        public const SaProposalPseudorandomFunction PseudorandomFunctionAes128Xcbc = SaProposalPseudorandomFunction.Aes128Xcbc;
+        public const SaProposalPseudorandomFunction PseudorandomFunctionHmacSha1 = SaProposalPseudorandomFunction.HmacSha1;
+        public const SaProposalPseudorandomFunction PseudorandomFunctionSha2256 = SaProposalPseudorandomFunction.Sha2256;
+        public const SaProposalPseudorandomFunction PseudorandomFunctionSha2384 = SaProposalPseudorandomFunction.Sha2384;
+        public const SaProposalPseudorandomFunction PseudorandomFunctionSha2512 = SaProposalPseudorandomFunction.Sha2512;
+        protected SaProposal(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual IList<Integer> DhGroups { get; }
+        public virtual IList<Pair> EncryptionAlgorithms { get; }
+        public virtual IList<Integer> IntegrityAlgorithms { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public static ICollection<Integer> SupportedDhGroups { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum SaProposalDhGroup {
+        Curve25519 = 31,
+        Group1024BitModp = 2,
+        Group1536BitModp = 5,
+        Group2048BitModp = 14,
+        Group3072BitModp = 15,
+        Group4096BitModp = 16,
+        None = 0,
+    }
+    public enum SaProposalEncryptionAlgorithm {
+        AesCbc = 12,
+        AesCtr = 13,
+        AesGcm12 = 19,
+        AesGcm16 = 20,
+        AesGcm8 = 18,
+        Chacha20Poly1305 = 28,
+        ThreeDes = 3,
+    }
+    public enum SaProposalIntegrityAlgorithm {
+        AesCmac96 = 8,
+        AesXcbc96 = 5,
+        HmacSha196 = 2,
+        HmacSha2256128 = 12,
+        HmacSha2384192 = 13,
+        HmacSha2512256 = 14,
+        None = 0,
+    }
+    public enum SaProposalKeyLength {
+        Aes128 = 128,
+        Aes192 = 192,
+        Aes256 = 256,
+        Unused = 0,
+    }
+    public enum SaProposalPseudorandomFunction {
+        Aes128Cmac = 8,
+        Aes128Xcbc = 4,
+        HmacSha1 = 2,
+        Sha2256 = 5,
+        Sha2384 = 6,
+        Sha2512 = 7,
+    }
+    public sealed class TransportModeChildSessionParams : ChildSessionParams {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(TransportModeChildSessionParams childParams);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TransportModeChildSessionParams.Builder AddChildSaProposal(ChildSaProposal proposal);
+            public TransportModeChildSessionParams.Builder AddInboundTrafficSelectors(IkeTrafficSelector trafficSelector);
+            public TransportModeChildSessionParams.Builder AddOutboundTrafficSelectors(IkeTrafficSelector trafficSelector);
+            public TransportModeChildSessionParams Build();
+            public TransportModeChildSessionParams.Builder SetLifetimeSeconds(int hardLifetimeSeconds, int softLifetimeSeconds);
+        }
+    }
+    public sealed class TunnelModeChildSessionParams : ChildSessionParams {
+        public IList<TunnelModeChildSessionParams.ITunnelModeChildConfigRequest> ConfigurationRequests { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class Builder : Object {
+            public Builder();
+            public Builder(TunnelModeChildSessionParams childParams);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TunnelModeChildSessionParams.Builder AddChildSaProposal(ChildSaProposal proposal);
+            public TunnelModeChildSessionParams.Builder AddInboundTrafficSelectors(IkeTrafficSelector trafficSelector);
+            public TunnelModeChildSessionParams.Builder AddInternalAddressRequest(Inet4Address address);
+            public TunnelModeChildSessionParams.Builder AddInternalAddressRequest(Inet6Address address, int prefixLen);
+            public TunnelModeChildSessionParams.Builder AddInternalAddressRequest(int addressFamily);
+            public TunnelModeChildSessionParams.Builder AddInternalDhcpServerRequest(int addressFamily);
+            public TunnelModeChildSessionParams.Builder AddInternalDnsServerRequest(int addressFamily);
+            public TunnelModeChildSessionParams.Builder AddOutboundTrafficSelectors(IkeTrafficSelector trafficSelector);
+            public TunnelModeChildSessionParams Build();
+            public TunnelModeChildSessionParams.Builder SetLifetimeSeconds(int hardLifetimeSeconds, int softLifetimeSeconds);
+        }
+        public interface IConfigRequestIpv4Address : IDisposable, IJavaObject, IJavaPeerable, TunnelModeChildSessionParams.ITunnelModeChildConfigRequest {
+            Inet4Address? Address { get; }
+        }
+        public interface IConfigRequestIpv4DhcpServer : IDisposable, IJavaObject, IJavaPeerable, TunnelModeChildSessionParams.ITunnelModeChildConfigRequest
+        public interface IConfigRequestIpv4DnsServer : IDisposable, IJavaObject, IJavaPeerable, TunnelModeChildSessionParams.ITunnelModeChildConfigRequest
+        public interface IConfigRequestIpv4Netmask : IDisposable, IJavaObject, IJavaPeerable, TunnelModeChildSessionParams.ITunnelModeChildConfigRequest
+        public interface IConfigRequestIpv6Address : IDisposable, IJavaObject, IJavaPeerable, TunnelModeChildSessionParams.ITunnelModeChildConfigRequest {
+            Inet6Address? Address { get; }
+            int PrefixLength { get; }
+        }
+        public interface IConfigRequestIpv6DnsServer : IDisposable, IJavaObject, IJavaPeerable, TunnelModeChildSessionParams.ITunnelModeChildConfigRequest
+        public interface ITunnelModeChildConfigRequest : IDisposable, IJavaObject, IJavaPeerable
+    }
+}

Android.Net.IpSec.Ike.Exceptions

+namespace Android.Net.IpSec.Ike.Exceptions {
+    public abstract class IkeException : Exception {
+        protected IkeException(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeInternalException : IkeNonProtocolException {
+        public IkeInternalException(Throwable cause);
+        public IkeInternalException(string message, Throwable cause);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class IkeNetworkLostException : IkeNonProtocolException {
+        public IkeNetworkLostException(Network network);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public Network Network { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public abstract class IkeNonProtocolException : IkeException {
+        protected IkeNonProtocolException(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum IkeProtocolErrorType {
+        AuthenticationFailed = 24,
+        ChildSaNotFound = 44,
+        FailedCpRequired = 37,
+        InternalAddressFailure = 36,
+        InvalidIkeSpi = 4,
+        InvalidKePayload = 17,
+        InvalidMajorVersion = 5,
+        InvalidMessageId = 9,
+        InvalidSelectors = 39,
+        InvalidSyntax = 7,
+        NoAdditionalSas = 35,
+        NoProposalChosen = 14,
+        SinglePairRequired = 34,
+        TemporaryFailure = 43,
+        TsUnacceptable = 38,
+        UnsupportedCriticalPayload = 1,
+    }
+    public abstract class IkeProtocolException : IkeException {
+        public const IkeProtocolErrorType ErrorTypeAuthenticationFailed = IkeProtocolErrorType.AuthenticationFailed;
+        public const IkeProtocolErrorType ErrorTypeChildSaNotFound = IkeProtocolErrorType.ChildSaNotFound;
+        public const IkeProtocolErrorType ErrorTypeFailedCpRequired = IkeProtocolErrorType.FailedCpRequired;
+        public const IkeProtocolErrorType ErrorTypeInternalAddressFailure = IkeProtocolErrorType.InternalAddressFailure;
+        public const IkeProtocolErrorType ErrorTypeInvalidIkeSpi = IkeProtocolErrorType.InvalidIkeSpi;
+        public const IkeProtocolErrorType ErrorTypeInvalidKePayload = IkeProtocolErrorType.InvalidKePayload;
+        public const IkeProtocolErrorType ErrorTypeInvalidMajorVersion = IkeProtocolErrorType.InvalidMajorVersion;
+        public const IkeProtocolErrorType ErrorTypeInvalidMessageId = IkeProtocolErrorType.InvalidMessageId;
+        public const IkeProtocolErrorType ErrorTypeInvalidSelectors = IkeProtocolErrorType.InvalidSelectors;
+        public const IkeProtocolErrorType ErrorTypeInvalidSyntax = IkeProtocolErrorType.InvalidSyntax;
+        public const IkeProtocolErrorType ErrorTypeNoAdditionalSas = IkeProtocolErrorType.NoAdditionalSas;
+        public const IkeProtocolErrorType ErrorTypeNoProposalChosen = IkeProtocolErrorType.NoProposalChosen;
+        public const IkeProtocolErrorType ErrorTypeSinglePairRequired = IkeProtocolErrorType.SinglePairRequired;
+        public const IkeProtocolErrorType ErrorTypeTemporaryFailure = IkeProtocolErrorType.TemporaryFailure;
+        public const IkeProtocolErrorType ErrorTypeTsUnacceptable = IkeProtocolErrorType.TsUnacceptable;
+        public const IkeProtocolErrorType ErrorTypeUnsupportedCriticalPayload = IkeProtocolErrorType.UnsupportedCriticalPayload;
+        protected IkeProtocolException(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual int ErrorType { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class InvalidKeException : IkeProtocolException {
+        public InvalidKeException(int dhGroup);
+        public int DhGroup { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class InvalidMajorVersionException : IkeProtocolException {
+        public InvalidMajorVersionException(sbyte version);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public sbyte MajorVersion { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class InvalidSelectorsException : IkeProtocolException {
+        public InvalidSelectorsException(int spi, byte[] packetInfo);
+        public int IpSecSpi { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public byte[] GetIpSecPacketInfo();
+    }
+}

Android.Net.Ssl

 namespace Android.Net.Ssl {
     public class SSLEngines : Object {
+        public static byte[]? ExportKeyingMaterial(SSLEngine engine, string label, byte[]? context, int length);
     }
     public class SSLSockets : Object {
+        public static byte[]? ExportKeyingMaterial(SSLSocket socket, string label, byte[]? context, int length);
     }
 }

Android.Net.Vcn

+namespace Android.Net.Vcn {
+    public sealed class VcnConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public ICollection<VcnGatewayConnectionConfig> GatewayConnectionConfigs { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(Context context);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public VcnConfig.Builder AddGatewayConnectionConfig(VcnGatewayConnectionConfig gatewayConnectionConfig);
+            public VcnConfig Build();
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum VcnErrorCode {
+        ConfigError = 1,
+        InternalError = 0,
+        NetworkError = 2,
+    }
+    public sealed class VcnGatewayConnectionConfig : Object {
+        public string GatewayConnectionName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int MaxMtu { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int[] GetExposedCapabilities();
+        public long[] GetRetryIntervalsMillis();
+        public sealed class Builder : Object {
+            public Builder(string gatewayConnectionName, IkeTunnelConnectionParams tunnelConnectionParams);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public VcnGatewayConnectionConfig.Builder AddExposedCapability(int exposedCapability);
+            public VcnGatewayConnectionConfig Build();
+            public VcnGatewayConnectionConfig.Builder RemoveExposedCapability(int exposedCapability);
+            public VcnGatewayConnectionConfig.Builder SetMaxMtu(int maxMtu);
+            public VcnGatewayConnectionConfig.Builder SetRetryIntervalsMillis(long[] retryIntervalsMs);
+        }
+    }
+    public class VcnManager : Object {
+        public const VcnErrorCode VcnErrorCodeConfigError = VcnErrorCode.ConfigError;
+        public const VcnErrorCode VcnErrorCodeInternalError = VcnErrorCode.InternalError;
+        public const VcnErrorCode VcnErrorCodeNetworkError = VcnErrorCode.NetworkError;
+        public const VcnStatusCode VcnStatusCodeActive = VcnStatusCode.Active;
+        public const VcnStatusCode VcnStatusCodeInactive = VcnStatusCode.Inactive;
+        public const VcnStatusCode VcnStatusCodeNotConfigured = VcnStatusCode.NotConfigured;
+        public const VcnStatusCode VcnStatusCodeSafeMode = VcnStatusCode.SafeMode;
+        protected VcnManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual IList<ParcelUuid> ConfiguredSubscriptionGroups { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void ClearVcnConfig(ParcelUuid subscriptionGroup);
+        public virtual void RegisterVcnStatusCallback(ParcelUuid subscriptionGroup, IExecutor executor, VcnManager.VcnStatusCallback callback);
+        public virtual void SetVcnConfig(ParcelUuid subscriptionGroup, VcnConfig config);
+        public virtual void UnregisterVcnStatusCallback(VcnManager.VcnStatusCallback callback);
+        public abstract class VcnStatusCallback : Object {
+            public VcnStatusCallback();
+            protected VcnStatusCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public abstract void OnGatewayConnectionError(string gatewayConnectionName, int errorCode, Throwable? detail);
+            public abstract void OnStatusChanged(int statusCode);
+        }
+    }
+    public enum VcnStatusCode {
+        Active = 2,
+        Inactive = 1,
+        NotConfigured = 0,
+        SafeMode = 3,
+    }
+}

Android.Net.Wifi

 namespace Android.Net.Wifi {
+    public enum AddNetworkResultStatus {
+        AddPasspointFailure = 3,
+        AddWifiConfigFailure = 4,
+        FailureUnknown = 1,
+        FailureUpdateNetworkKeys = 9,
+        InvalidConfiguration = 5,
+        InvalidConfigurationEnterprise = 10,
+        NoPermission = 2,
+        NoPermissionModifyConfig = 6,
+        NoPermissionModifyMacRandomization = 8,
+        NoPermissionModifyProxySetting = 7,
+        Success = 0,
+    }
     public enum EasyConnectEventFailure {
+        EnrolleeFailedToScanNetworkChannel = -14,
+        UriGeneration = -13,
     }
     public abstract class EasyConnectStatusCallback : Object {
+        public const EasyConnectEventFailure EasyConnectEventFailureEnrolleeFailedToScanNetworkChannel = EasyConnectEventFailure.EnrolleeFailedToScanNetworkChannel;
+        public const EasyConnectEventFailure EasyConnectEventFailureUriGeneration = EasyConnectEventFailure.UriGeneration;
     }
     public enum GroupCipherType {
+        Gcmp128 = 7,
     }
     public enum PairwiseCipherType {
+        Gcmp128 = 5,
     }
     public class ScanResult : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WifiBand WifiBand24Ghz = WifiBand.Band24Ghz;
+        public const WifiBand WifiBand5Ghz = WifiBand.Band5Ghz;
+        public const WifiBand WifiBand60Ghz = WifiBand.Band60Ghz;
+        public const WifiBand WifiBand6Ghz = WifiBand.Band6Ghz;
+        public const WifiStandard WifiStandard11ad = WifiStandard.Wifi11ad;
+        public const int Unspecified = -1;
+        public static int ConvertChannelToFrequencyMhzIfSupported(int channel, int band);
+        public static int ConvertFrequencyMhzToChannelIfSupported(int freqMhz);
-        public class InformationElement : Object {
+        public class InformationElement : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public static IParcelableCreator Creator { get; }
+            public virtual int DescribeContents();
+            public virtual void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+            public static class InterfaceConsts {
+                public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+                public const int ContentsFileDescriptor = 1;
+            }
         }
     }
+    public enum StatusSuggestionApproval {
+        ApprovedByCarrierPrivilege = 4,
+        ApprovedByUser = 2,
+        Pending = 1,
+        RejectedByUser = 3,
+        Unknown = 0,
+    }
+    public enum WifiBand {
+        Band24Ghz = 1,
+        Band5Ghz = 2,
+        Band60Ghz = 16,
+        Band6Ghz = 8,
+        Unspecified = -1,
+    }
     public class WifiConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WifiConfigurationSecurityType SecurityTypeEapWpa3Enterprise = WifiConfigurationSecurityType.EapWpa3Enterprise;
+        public const WifiConfigurationSecurityType SecurityTypeEapWpa3Enterprise192Bit = WifiConfigurationSecurityType.EapSuiteB;
         public class GroupCipher : Object {
+            public const GroupCipherType Gcmp128 = GroupCipherType.Gcmp128;
         }
         public class PairwiseCipher : Object {
+            public const PairwiseCipherType Gcmp128 = PairwiseCipherType.Gcmp128;
         }
     }
     public enum WifiConfigurationSecurityType {
+        EapWpa3Enterprise = 9,
+        EapWpa3Enterprise192Bit = 5,
     }
     public class WifiEnterpriseConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual string ClientKeyPairAlias { get; set; }
+        public virtual string DecoratedIdentityPrefix { get; set; }
+        public virtual bool IsEapMethodServerCertUsed { get; }
+        public virtual bool IsServerCertValidationEnabled { get; }
     }
-    public class WifiInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+    public class WifiInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable, ITransportInfo {
+        public const WifiSecurityType SecurityTypeEap = WifiSecurityType.Eap;
+        public const WifiSecurityType SecurityTypeEapWpa3Enterprise = WifiSecurityType.EapWpa3Enterprise;
+        public const WifiSecurityType SecurityTypeEapWpa3Enterprise192Bit = WifiSecurityType.EapWpa3Enterprise192Bit;
+        public const WifiSecurityType SecurityTypeOpen = WifiSecurityType.Open;
+        public const WifiSecurityType SecurityTypeOsen = WifiSecurityType.Osen;
+        public const WifiSecurityType SecurityTypeOwe = WifiSecurityType.Owe;
+        public const WifiSecurityType SecurityTypePasspointR1R2 = WifiSecurityType.PasspointR1R2;
+        public const WifiSecurityType SecurityTypePasspointR3 = WifiSecurityType.PasspointR3;
+        public const WifiSecurityType SecurityTypePsk = WifiSecurityType.Psk;
+        public const WifiSecurityType SecurityTypeSae = WifiSecurityType.Sae;
+        public const WifiSecurityType SecurityTypeUnknown = WifiSecurityType.Unknown;
+        public const WifiSecurityType SecurityTypeWapiCert = WifiSecurityType.WapiCert;
+        public const WifiSecurityType SecurityTypeWapiPsk = WifiSecurityType.WapiPsk;
+        public const WifiSecurityType SecurityTypeWep = WifiSecurityType.Wep;
+        public virtual long ApplicableRedactions { get; }
+        public virtual int CurrentSecurityType { get; }
+        public virtual IList<ScanResult.InformationElement>? InformationElements { get; }
+        public virtual int SubscriptionId { get; }
+        public virtual WifiInfo MakeCopy(long redactions);
         public sealed class Builder : Object {
+            public WifiInfo.Builder SetCurrentSecurityType(int securityType);
         }
     }
     public class WifiManager : Object {
+        public const StatusSuggestionApproval StatusSuggestionApprovalApprovedByCarrierPrivilege = StatusSuggestionApproval.ApprovedByCarrierPrivilege;
+        public const StatusSuggestionApproval StatusSuggestionApprovalApprovedByUser = StatusSuggestionApproval.ApprovedByUser;
+        public const StatusSuggestionApproval StatusSuggestionApprovalPending = StatusSuggestionApproval.Pending;
+        public const StatusSuggestionApproval StatusSuggestionApprovalRejectedByUser = StatusSuggestionApproval.RejectedByUser;
+        public const StatusSuggestionApproval StatusSuggestionApprovalUnknown = StatusSuggestionApproval.Unknown;
+        public virtual IList<WifiConfiguration> CallerConfiguredNetworks { get; }
+        public virtual bool IsBridgedApConcurrencySupported { get; }
+        public virtual bool IsDecoratedIdentitySupported { get; }
+        public virtual bool IsEasyConnectEnrolleeResponderModeSupported { get; }
+        public virtual bool IsMakeBeforeBreakWifiSwitchingSupported { get; }
+        public virtual bool IsPasspointTermsAndConditionsSupported { get; }
+        public virtual bool IsStaBridgedApConcurrencySupported { get; }
+        public virtual bool IsStaConcurrencyForLocalOnlyConnectionsSupported { get; }
+        public virtual bool IsWifiDisplayR2Supported { get; }
+        public virtual bool IsWpa3SaeH2eSupported { get; }
+        public virtual bool IsWpa3SaePublicKeySupported { get; }
+        public virtual WifiManager.AddNetworkResult AddNetworkPrivileged(WifiConfiguration config);
+        public virtual void AddSuggestionUserApprovalStatusListener(IExecutor executor, WifiManager.ISuggestionUserApprovalStatusListener listener);
+        public virtual void FlushPasspointAnqpCache();
+        public virtual bool Is24GHzBandSupported();
+        public virtual bool Is60GHzBandSupported();
+        public virtual bool IsCarrierNetworkOffloadEnabled(int subscriptionId, bool merged);
+        public virtual void RegisterSubsystemRestartTrackingCallback(IExecutor executor, WifiManager.SubsystemRestartTrackingCallback callback);
+        public virtual bool RemoveNonCallerConfiguredNetworks();
+        public virtual void RemoveSuggestionUserApprovalStatusListener(WifiManager.ISuggestionUserApprovalStatusListener listener);
+        public virtual void UnregisterSubsystemRestartTrackingCallback(WifiManager.SubsystemRestartTrackingCallback callback);
+        public sealed class AddNetworkResult : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public const AddNetworkResultStatus StatusAddPasspointFailure = AddNetworkResultStatus.AddPasspointFailure;
+            public const AddNetworkResultStatus StatusAddWifiConfigFailure = AddNetworkResultStatus.AddWifiConfigFailure;
+            public const AddNetworkResultStatus StatusFailureUnknown = AddNetworkResultStatus.FailureUnknown;
+            public const AddNetworkResultStatus StatusFailureUpdateNetworkKeys = AddNetworkResultStatus.FailureUpdateNetworkKeys;
+            public const AddNetworkResultStatus StatusInvalidConfiguration = AddNetworkResultStatus.InvalidConfiguration;
+            public const AddNetworkResultStatus StatusInvalidConfigurationEnterprise = AddNetworkResultStatus.InvalidConfigurationEnterprise;
+            public const AddNetworkResultStatus StatusNoPermission = AddNetworkResultStatus.NoPermission;
+            public const AddNetworkResultStatus StatusNoPermissionModifyConfig = AddNetworkResultStatus.NoPermissionModifyConfig;
+            public const AddNetworkResultStatus StatusNoPermissionModifyMacRandomization = AddNetworkResultStatus.NoPermissionModifyMacRandomization;
+            public const AddNetworkResultStatus StatusNoPermissionModifyProxySetting = AddNetworkResultStatus.NoPermissionModifyProxySetting;
+            public const AddNetworkResultStatus StatusSuccess = AddNetworkResultStatus.Success;
+            public AddNetworkResult(int statusCode, int networkId);
+            public static IParcelableCreator Creator { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public int NetworkId { get; set; }
+            public int StatusCode { get; set; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public int DescribeContents();
+            public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+            public static class InterfaceConsts {
+                public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+                public const int ContentsFileDescriptor = 1;
+            }
+        }
+        public interface ISuggestionUserApprovalStatusListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnUserApprovalStatusChange(int status);
+        }
+        public abstract class SubsystemRestartTrackingCallback : Object {
+            public SubsystemRestartTrackingCallback();
+            protected SubsystemRestartTrackingCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public abstract void OnSubsystemRestarted();
+            public abstract void OnSubsystemRestarting();
+        }
+        public class SuggestionUserApprovalStatusEventArgs : EventArgs {
+            public SuggestionUserApprovalStatusEventArgs(int status);
+            public int Status { get; }
+        }
     }
     public sealed class WifiNetworkSpecifier : NetworkSpecifier, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int Band { get; }
+        public bool CanBeSatisfiedBy(NetworkSpecifier? other);
+        public NetworkSpecifier? Redact();
         public sealed class Builder : Object {
+            public WifiNetworkSpecifier.Builder SetBand(int band);
+            public WifiNetworkSpecifier.Builder SetWpa3Enterprise192BitModeConfig(WifiEnterpriseConfig enterpriseConfig);
+            public WifiNetworkSpecifier.Builder SetWpa3EnterpriseStandardModeConfig(WifiEnterpriseConfig enterpriseConfig);
         }
     }
     public sealed class WifiNetworkSuggestion : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WifiNetworkSuggestionRandomization RandomizationNonPersistent = WifiNetworkSuggestionRandomization.NonPersistent;
+        public const WifiNetworkSuggestionRandomization RandomizationPersistent = WifiNetworkSuggestionRandomization.Persistent;
+        public bool IsCarrierMerged { get; }
+        public int PriorityGroup { get; }
+        public int SubscriptionId { get; }
         public sealed class Builder : Object {
+            public WifiNetworkSuggestion.Builder SetCarrierMerged(bool isCarrierMerged);
+            public WifiNetworkSuggestion.Builder SetIsWpa3SaeH2eOnlyModeEnabled(bool enable);
+            public WifiNetworkSuggestion.Builder SetMacRandomizationSetting(int macRandomizationSetting);
+            public WifiNetworkSuggestion.Builder SetPriorityGroup(int priorityGroup);
+            public WifiNetworkSuggestion.Builder SetSubscriptionId(int subscriptionId);
+            public WifiNetworkSuggestion.Builder SetWpa3Enterprise192BitModeConfig(WifiEnterpriseConfig enterpriseConfig);
+            public WifiNetworkSuggestion.Builder SetWpa3EnterpriseStandardModeConfig(WifiEnterpriseConfig enterpriseConfig);
         }
     }
+    public enum WifiNetworkSuggestionRandomization {
+        NonPersistent = 1,
+        Persistent = 0,
+    }
+    public enum WifiSecurityType {
+        Eap = 3,
+        EapWpa3Enterprise = 9,
+        EapWpa3Enterprise192Bit = 5,
+        Open = 0,
+        Osen = 10,
+        Owe = 6,
+        PasspointR1R2 = 11,
+        PasspointR3 = 12,
+        Psk = 2,
+        Sae = 4,
+        Unknown = -1,
+        WapiCert = 8,
+        WapiPsk = 7,
+        Wep = 1,
+    }
     public enum WifiStandard {
+        Wifi11ad = 7,
     }
 }

Android.Net.Wifi.Aware

 namespace Android.Net.Wifi.Aware {
+    public sealed class AwareResources : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public AwareResources(int availableDataPathsCount, int availablePublishSessionsCount, int availableSubscribeSessionsCount);
+        public int AvailableDataPathsCount { get; }
+        public int AvailablePublishSessionsCount { get; }
+        public int AvailableSubscribeSessionsCount { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class Characteristics : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool IsInstantCommunicationModeSupported { get; }
     }
     public class DiscoverySessionCallback : Object {
+        public virtual void OnServiceLost(PeerHandle peerHandle, int reason);
     }
+    public enum WifiAwareDiscoveryLostReason {
+        PeerNotVisible = 1,
+        Unknown = 0,
+    }
     public class WifiAwareManager : Object {
+        public const WifiAwareDiscoveryLostReason WifiAwareDiscoveryLostReasonPeerNotVisible = WifiAwareDiscoveryLostReason.PeerNotVisible;
+        public const WifiAwareDiscoveryLostReason WifiAwareDiscoveryLostReasonUnknown = WifiAwareDiscoveryLostReason.Unknown;
+        public virtual AwareResources? AvailableAwareResources { get; }
+        public virtual bool IsDeviceAttached { get; }
+        public virtual bool IsInstantCommunicationModeEnabled { get; }
     }
     public sealed class WifiAwareNetworkSpecifier : NetworkSpecifier, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool CanBeSatisfiedBy(NetworkSpecifier? other);
         public sealed class Builder : Object {
+            public Builder(PublishDiscoverySession publishDiscoverySession);
         }
     }
 }

Android.Net.Wifi.Hotspot2

 namespace Android.Net.Wifi.Hotspot2 {
     public sealed class PasspointConfiguration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public string DecoratedIdentityPrefix { get; set; }
     }
 }

Android.Net.Wifi.Hotspot2.Pps

 namespace Android.Net.Wifi.Hotspot2.Pps {
     public sealed class HomeSp : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public ICollection<string> OtherHomePartnersList { get; set; }
+        public long[] GetMatchAllOis();
+        public long[] GetMatchAnyOis();
+        public void SetMatchAllOis(long[] matchAllOis);
+        public void SetMatchAnyOis(long[] matchAnyOis);
     }
 }

Android.Net.Wifi.P2p

 namespace Android.Net.Wifi.P2p {
+    public enum WfdInfoDeviceInfo {
+        AudioOnlySupportAtSource = 2048,
+        AudioUnsupportedAtPrimarySink = 1024,
+        ContentProtectionSupport = 256,
+        CoupledSinkSupportAtSink = 8,
+        CoupledSinkSupportAtSource = 4,
+        DeviceTypeMask = 3,
+        PreferredConnectivityMask = 128,
+        SessionAvailableMask = 48,
+        TdlsPersistentGroup = 4096,
+        TdlsPersistentGroupReinvoke = 8192,
+        TimeSynchronizationSupport = 512,
+        WfdServiceDiscoverySupport = 64,
+    }
+    public enum WfdInfoPreferredConnectivity {
+        P2P = 0,
+        Tdls = 1,
+    }
     public sealed class WifiP2pWfdInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const WfdInfoDeviceInfo DeviceInfoAudioOnlySupportAtSource = WfdInfoDeviceInfo.AudioOnlySupportAtSource;
+        public const WfdInfoDeviceInfo DeviceInfoAudioUnsupportedAtPrimarySink = WfdInfoDeviceInfo.AudioUnsupportedAtPrimarySink;
+        public const WfdInfoDeviceInfo DeviceInfoContentProtectionSupport = WfdInfoDeviceInfo.ContentProtectionSupport;
+        public const WfdInfoDeviceInfo DeviceInfoCoupledSinkSupportAtSink = WfdInfoDeviceInfo.CoupledSinkSupportAtSink;
+        public const WfdInfoDeviceInfo DeviceInfoCoupledSinkSupportAtSource = WfdInfoDeviceInfo.CoupledSinkSupportAtSource;
+        public const WfdInfoDeviceInfo DeviceInfoDeviceTypeMask = WfdInfoDeviceInfo.DeviceTypeMask;
+        public const WfdInfoDeviceInfo DeviceInfoPreferredConnectivityMask = WfdInfoDeviceInfo.PreferredConnectivityMask;
+        public const WfdInfoDeviceInfo DeviceInfoSessionAvailableMask = WfdInfoDeviceInfo.SessionAvailableMask;
+        public const WfdInfoDeviceInfo DeviceInfoTdlsPersistentGroup = WfdInfoDeviceInfo.TdlsPersistentGroup;
+        public const WfdInfoDeviceInfo DeviceInfoTdlsPersistentGroupReinvoke = WfdInfoDeviceInfo.TdlsPersistentGroupReinvoke;
+        public const WfdInfoDeviceInfo DeviceInfoTimeSynchronizationSupport = WfdInfoDeviceInfo.TimeSynchronizationSupport;
+        public const WfdInfoDeviceInfo DeviceInfoWfdServiceDiscoverySupport = WfdInfoDeviceInfo.WfdServiceDiscoverySupport;
+        public const WfdInfoPreferredConnectivity PreferredConnectivityP2p = WfdInfoPreferredConnectivity.P2P;
+        public const WfdInfoPreferredConnectivity PreferredConnectivityTdls = WfdInfoPreferredConnectivity.Tdls;
+        public int DeviceInfo { get; }
+        public bool IsCoupledSinkSupportedAtSink { get; }
+        public bool IsCoupledSinkSupportedAtSource { get; }
+        public bool IsR2Supported { get; }
+        public int R2DeviceInfo { get; }
+        public int R2DeviceType { get; }
+        public void SetCoupledSinkSupportAtSink(bool enabled);
+        public void SetCoupledSinkSupportAtSource(bool enabled);
+        public bool SetR2DeviceType(int deviceType);
     }
 }

Android.Net.Wifi.Rtt

 namespace Android.Net.Wifi.Rtt {
     public sealed class RangingRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static int DefaultRttBurstSize { get; }
+        public static int MaxRttBurstSize { get; }
+        public static int MinRttBurstSize { get; }
+        public int RttBurstSize { get; }
         public sealed class Builder : Object {
+            public RangingRequest.Builder AddNon80211mcCapableAccessPoint(ScanResult apInfo);
+            public RangingRequest.Builder AddNon80211mcCapableAccessPoints(IList<ScanResult> apInfos);
+            public RangingRequest.Builder SetRttBurstSize(int rttBurstSize);
         }
     }
     public sealed class RangingResult : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public bool Is80211mcMeasurement();
     }
 }

Android.OS

 namespace Android.OS {
+    public enum BugreportErrorCode {
+        AnotherReportInProgress = 5,
+        InvalidInput = 1,
+        Runtime = 2,
+        UserConsentTimedOut = 4,
+        UserDeniedConsent = 3,
+    }
+    public sealed class BugreportManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void CancelBugreport();
+        public void StartConnectivityBugreport(ParcelFileDescriptor bugreportFd, IExecutor executor, BugreportManager.BugreportCallback callback);
+        public abstract class BugreportCallback : Object {
+            public const BugreportErrorCode BugreportErrorAnotherReportInProgress = BugreportErrorCode.AnotherReportInProgress;
+            public const BugreportErrorCode BugreportErrorInvalidInput = BugreportErrorCode.InvalidInput;
+            public const BugreportErrorCode BugreportErrorRuntime = BugreportErrorCode.Runtime;
+            public const BugreportErrorCode BugreportErrorUserConsentTimedOut = BugreportErrorCode.UserConsentTimedOut;
+            public const BugreportErrorCode BugreportErrorUserDeniedConsent = BugreportErrorCode.UserDeniedConsent;
+            public BugreportCallback();
+            protected BugreportCallback(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void OnEarlyReportFinished();
+            public virtual void OnError(int errorCode);
+            public virtual void OnFinished();
+            public virtual void OnProgress(float progress);
+        }
+    }
     public class Build : Object {
+        public static string OdmSku { get; }
+        public static string Sku { get; }
+        public static string SocManufacturer { get; }
+        public static string SocModel { get; }
         public class VERSION : Object {
+            public static int MediaPerformanceClass { get; }
         }
         public class VERSION_CODES : Object {
+            public const BuildVersionCodes S = BuildVersionCodes.S;
         }
     }
     public enum BuildVersionCodes {
+        S = 31,
     }
+    public abstract class CombinedVibration : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        protected CombinedVibration(IntPtr javaReference, JniHandleOwnership transfer);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static CombinedVibration CreateParallel(VibrationEffect effect);
+        public virtual int DescribeContents();
+        public static CombinedVibration.ParallelCombination StartParallel();
+        public abstract void WriteToParcel(Parcel? dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+        public sealed class ParallelCombination : Object {
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public CombinedVibration.ParallelCombination AddVibrator(int vibratorId, VibrationEffect effect);
+            public CombinedVibration Combine();
+        }
+    }
     public class DropBoxManager : Object {
-        public virtual void AddData(string? tag, byte[]? data, DropBoxManagerFlags flags);
+        public virtual void AddData(string tag, byte[]? data, DropBoxManagerFlags flags);
-        public virtual void AddFile(string? tag, File? file, DropBoxManagerFlags flags);
+        public virtual void AddFile(string tag, File file, DropBoxManagerFlags flags);
-        public virtual void AddText(string? tag, string? data);
+        public virtual void AddText(string tag, string data);
         public class Entry : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
-            public Entry(string tag, long millis, ParcelFileDescriptor data, DropBoxManagerFlags flags);
+            public Entry(string tag, long millis, ParcelFileDescriptor? data, DropBoxManagerFlags flags);
-            public Entry(string tag, long millis, byte[] data, DropBoxManagerFlags flags);
+            public Entry(string tag, long millis, byte[]? data, DropBoxManagerFlags flags);
-            public static IParcelableCreator Creator { get; }
+            public static IParcelableCreator? Creator { get; }
-            public virtual Stream InputStream { get; }
+            public virtual Stream? InputStream { get; }
-            public virtual string GetText(int maxBytes);
+            public virtual string? GetText(int maxBytes);
-            public virtual void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+            public virtual void WriteToParcel(Parcel? @out, ParcelableWriteFlags flags);
         }
     }
     public class Environment : Object {
+        public static string DirectoryRecordings { get; set; }
     }
+    public interface IOutcomeReceiver : IDisposable, IJavaObject, IJavaPeerable {
+        void OnError(Object error);
+        void OnResult(Object result);
+    }
     public enum Pattern {
+        Suffix = 4,
     }
     public class PatternMatcher : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const Pattern PatternSuffix = Pattern.Suffix;
     }
+    public sealed class PerformanceHintManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public long PreferredUpdateRateNanos { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public PerformanceHintManager.Session? CreateHintSession(int[] tids, long initialTargetWorkDurationNanos);
+        public class Session : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable {
+            protected Session(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual void Close();
+            public virtual void ReportActualWorkDuration(long actualDurationNanos);
+            public virtual void UpdateTargetWorkDuration(long targetDurationNanos);
+        }
+    }
     public class PowerManager : Object {
+        public virtual bool IsBatteryDischargePredictionPersonalized { get; }
     }
     public sealed class StrictMode : Object {
         public sealed class VmPolicy : Object {
             public sealed class Builder : Object {
+                public StrictMode.VmPolicy.Builder DetectIncorrectContextUse();
+                public StrictMode.VmPolicy.Builder DetectUnsafeIntentLaunch();
+                public StrictMode.VmPolicy.Builder PermitUnsafeIntentLaunch();
             }
         }
     }
     public class UserManager : Object {
+        public const string DisallowCameraToggle = "disallow_camera_toggle";
+        public const string DisallowMicrophoneToggle = "disallow_microphone_toggle";
+        public static bool IsHeadlessSystemUserMode { get; }
+        public virtual bool IsUserForeground { get; }
     }
     public abstract class VibrationEffect : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Composition : Object {
+            public const VibrationEffectCompositionPrimitive PrimitiveLowTick = VibrationEffectCompositionPrimitive.LowTick;
+            public const VibrationEffectCompositionPrimitive PrimitiveSpin = VibrationEffectCompositionPrimitive.Spin;
+            public const VibrationEffectCompositionPrimitive PrimitiveThud = VibrationEffectCompositionPrimitive.Thud;
         }
     }
     public enum VibrationEffectCompositionPrimitive {
+        LowTick = 8,
+        Spin = 3,
+        Thud = 2,
     }
     public abstract class Vibrator : Object {
+        public virtual int Id { get; }
+        public virtual int[] GetPrimitiveDurations(params int[] primitiveIds);
     }
+    public abstract class VibratorManager : Object {
+        protected VibratorManager(IntPtr javaReference, JniHandleOwnership transfer);
+        public abstract Vibrator DefaultVibrator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public abstract void Cancel();
+        public abstract Vibrator GetVibrator(int vibratorId);
+        public abstract int[] GetVibratorIds();
+        public void Vibrate(CombinedVibration effect);
+        public void Vibrate(CombinedVibration effect, VibrationAttributes? attributes);
+    }
 }

Android.OS.Storage

 namespace Android.OS.Storage {
     public class StorageManager : Object {
+        public virtual PendingIntent? GetManageSpaceActivityIntent(string packageName, int requestCode);
     }
     public sealed class StorageVolume : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public UUID StorageUuid { get; }
     }
 }

Android.OS.Strictmode

 namespace Android.OS.Strictmode {
+    public sealed class IncorrectContextUseViolation : Violation {
+        public IncorrectContextUseViolation(string message, Throwable originStack);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class UnsafeIntentLaunchViolation : Violation {
+        public UnsafeIntentLaunchViolation(Intent intent);
+        public Intent? Intent { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
 }

Android.Print

 namespace Android.Print {
     public sealed class PrintAttributes : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class MediaSize : Object {
+            public static PrintAttributes.MediaSize AnsiC { get; }
+            public static PrintAttributes.MediaSize AnsiD { get; }
+            public static PrintAttributes.MediaSize AnsiE { get; }
+            public static PrintAttributes.MediaSize AnsiF { get; }
+            public static PrintAttributes.MediaSize JpnOePhotoL { get; }
+            public static PrintAttributes.MediaSize NaArchA { get; }
+            public static PrintAttributes.MediaSize NaArchB { get; }
+            public static PrintAttributes.MediaSize NaArchC { get; }
+            public static PrintAttributes.MediaSize NaArchD { get; }
+            public static PrintAttributes.MediaSize NaArchE { get; }
+            public static PrintAttributes.MediaSize NaArchE1 { get; }
+            public static PrintAttributes.MediaSize NaSuperB { get; }
         }
     }
 }

Android.Provider

 namespace Android.Provider {
     public sealed class CalendarContract : Object {
-        protected internal interface IAttendeesColumns
+        public interface IAttendeesColumns
-        protected internal interface ICalendarAlertsColumns
+        public interface ICalendarAlertsColumns
-        protected internal interface ICalendarCacheColumns
+        public interface ICalendarCacheColumns
-        protected internal interface ICalendarColumns
+        public interface ICalendarColumns
-        protected internal interface ICalendarSyncColumns
+        public interface ICalendarSyncColumns
-        protected internal interface IColorsColumns
+        public interface IColorsColumns
-        protected internal interface IEventDaysColumns
+        public interface IEventDaysColumns
-        protected internal interface IEventsColumns
+        public interface IEventsColumns
-        protected internal interface IExtendedPropertiesColumns
+        public interface IExtendedPropertiesColumns
-        protected internal interface IRemindersColumns
+        public interface IRemindersColumns
-        protected internal interface ISyncColumns
+        public interface ISyncColumns
     }
     public class CallLog : Object {
         public class Calls : Object {
+            public const CallPriority PriorityNormal = CallPriority.Normal;
+            public const CallPriority PriorityUrgent = CallPriority.Urgent;
+            public const long AutoMissedEmergencyCall = (long)1;
+            public const long AutoMissedMaximumDialing = (long)4;
+            public const long AutoMissedMaximumRinging = (long)2;
+            public const long MissedReasonNotMissed = (long)0;
+            public const long UserMissedCallFiltersTimeout = (long)4194304;
+            public const long UserMissedCallScreeningServiceSilenced = (long)2097152;
+            public const long UserMissedDndMode = (long)262144;
+            public const long UserMissedLowRingVolume = (long)524288;
+            public const long UserMissedNoAnswer = (long)65536;
+            public const long UserMissedNoVibrate = (long)1048576;
+            public const long UserMissedShortRing = (long)131072;
+            public const string ComposerPhotoUri = "composer_photo_uri";
+            public const string Location = "location";
+            public const string MissedReason = "missed_reason";
+            public const string Priority = "priority";
+            public const string Subject = "subject";
         }
+        public class Locations : Object {
+            public const string Authority = "call_composer_locations";
+            public const string ContentItemType = "vnd.android.cursor.item/call_composer_location";
+            public const string ContentType = "vnd.android.cursor.dir/call_composer_location";
+            public const string Latitude = "latitude";
+            public const string Longitude = "longitude";
+            protected Locations(IntPtr javaReference, JniHandleOwnership transfer);
+            public static Uri ContentUri { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static class InterfaceConsts {
+                public const string Count = "_count";
+                public const string Id = "_id";
+            }
+        }
     }
+    public enum CallPriority {
+        Normal = 0,
+        Urgent = 1,
+    }
     public sealed class ContactsContract : Object {
         public sealed class CommonDataKinds : Object {
-            protected internal interface ICommonColumns
+            public interface ICommonColumns
         }
-        protected internal interface IBaseSyncColumns
+        public interface IBaseSyncColumns
-        protected internal interface IContactNameColumns
+        public interface IContactNameColumns
-        protected internal interface IContactOptionsColumns
+        public interface IContactOptionsColumns
-        protected internal interface IContactStatusColumns
+        public interface IContactStatusColumns
-        protected internal interface IDataColumns
+        public interface IDataColumns
-        protected internal interface IDataUsageStatColumns
+        public interface IDataUsageStatColumns
-        protected internal interface IDeletedContactsColumns
+        public interface IDeletedContactsColumns
-        protected internal interface IGroupsColumns
+        public interface IGroupsColumns
-        protected internal interface IPhoneLookupColumns
+        public interface IPhoneLookupColumns
-        protected internal interface IPresenceColumns
+        public interface IPresenceColumns
-        protected internal interface IRawContactsColumns
+        public interface IRawContactsColumns
-        protected internal interface ISettingsColumns
+        public interface ISettingsColumns
-        protected internal interface IStatusColumns
+        public interface IStatusColumns
-        protected internal interface IStreamItemPhotosColumns
+        public interface IStreamItemPhotosColumns
-        protected internal interface IStreamItemsColumns
+        public interface IStreamItemsColumns
-        protected internal interface ISyncColumns
+        public interface ISyncColumns
+        public sealed class SimAccount : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public const SimAccountType AdnEfType = SimAccountType.AdnEfType;
+            public const SimAccountType FdnEfType = SimAccountType.FdnEfType;
+            public const SimAccountType SdnEfType = SimAccountType.SdnEfType;
+            public const SimAccountType UnknownEfType = SimAccountType.UnknownEfType;
+            public string AccountName { get; }
+            public string AccountType { get; }
+            public static IParcelableCreator Creator { get; }
+            public int EfType { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public int SimSlotIndex { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public int DescribeContents();
+            public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+            public static class InterfaceConsts {
+                public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+                public const int ContentsFileDescriptor = 1;
+            }
+        }
+        public sealed class SimContacts : Object {
+            public const string ActionSimAccountsChanged = "android.provider.action.SIM_ACCOUNTS_CHANGED";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static IList<ContactsContract.SimAccount> GetSimAccounts(ContentResolver contentResolver);
+        }
     }
     public sealed class MediaStore : Object {
+        public const string ExtraAcceptOriginalMediaFormat = "android.provider.extra.ACCEPT_ORIGINAL_MEDIA_FORMAT";
+        public const string ExtraMediaCapabilities = "android.provider.extra.MEDIA_CAPABILITIES";
+        public const string ExtraMediaCapabilitiesUid = "android.provider.extra.MEDIA_CAPABILITIES_UID";
+        public const string QueryArgIncludeRecentlyUnmountedVolumes = "android:query-arg-recently-unmounted-volumes";
+        public static bool CanManageMedia(Context context);
+        public static ParcelFileDescriptor GetOriginalMediaFormatFileDescriptor(Context context, ParcelFileDescriptor fileDescriptor);
+        public static Uri? GetRedactedUri(ContentResolver resolver, Uri uri);
+        public static IList<Uri> GetRedactedUri(ContentResolver resolver, IList<Uri> uris);
+        public static bool IsCurrentSystemGallery(ContentResolver resolver, int uid, string packageName);
         public sealed class Audio : Object {
             public sealed class Artists : Object {
                 public sealed class Albums : Object {
                     public static class InterfaceConsts {
+                        public const string Count = "_count";
+                        public const string Id = "_id";
                     }
                 }
             }
             public abstract class AudioColumns : Object {
+                public const string IsRecording = "is_recording";
             }
             public sealed class Genres : Object {
                 public sealed class Members : Object {
                     public static class InterfaceConsts {
+                        public const string IsRecording = "is_recording";
                     }
                 }
             }
             public interface IAudioColumns {
+                public const string IsRecording = "is_recording";
             }
             public sealed class Media : Object {
                 public static class InterfaceConsts {
+                    public const string IsRecording = "is_recording";
                 }
             }
             public sealed class Playlists : Object {
                 public sealed class Members : Object {
                     public static class InterfaceConsts {
+                        public const string IsRecording = "is_recording";
                     }
                 }
             }
         }
     }
     public sealed class Settings : Object {
+        public const string ActionAppOpenByDefaultSettings = "android.settings.APP_OPEN_BY_DEFAULT_SETTINGS";
+        public const string ActionAutoRotateSettings = "android.settings.AUTO_ROTATE_SETTINGS";
+        public const string ActionManageAllSimProfilesSettings = "android.settings.MANAGE_ALL_SIM_PROFILES_SETTINGS";
+        public const string ActionRequestManageMedia = "android.settings.REQUEST_MANAGE_MEDIA";
+        public const string ActionRequestScheduleExactAlarm = "android.settings.REQUEST_SCHEDULE_EXACT_ALARM";
+        public const string ExtraChannelFilterList = "android.provider.extra.CHANNEL_FILTER_LIST";
     }
+    public enum SimAccountType {
+        AdnEfType = 1,
+        FdnEfType = 2,
+        SdnEfType = 3,
+        UnknownEfType = 0,
+    }
+    public enum SimElementaryFileType {
+        Adn = 1,
+        Fdn = 2,
+        Sdn = 3,
+        Unknown = 0,
+    }
+    public sealed class SimPhonebookContract : Object {
+        public const string Authority = "com.android.simphonebook";
+        public static Uri AuthorityUri { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public sealed class ElementaryFiles : Object {
+            public const SimElementaryFileType EfAdn = SimElementaryFileType.Adn;
+            public const SimElementaryFileType EfFdn = SimElementaryFileType.Fdn;
+            public const SimElementaryFileType EfSdn = SimElementaryFileType.Sdn;
+            public const SimElementaryFileType EfUnknown = SimElementaryFileType.Unknown;
+            public const string ContentItemType = "vnd.android.cursor.item/sim-elementary-file";
+            public const string ContentType = "vnd.android.cursor.dir/sim-elementary-file";
+            public const string EfType = "ef_type";
+            public const string MaxRecords = "max_records";
+            public const string NameMaxLength = "name_max_length";
+            public const string PhoneNumberMaxLength = "phone_number_max_length";
+            public const string RecordCount = "record_count";
+            public const string SlotIndex = "slot_index";
+            public const string SubscriptionId = "subscription_id";
+            public static Uri ContentUri { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static Uri GetItemUri(int subscriptionId, int efType);
+        }
+        public sealed class SimRecords : Object {
+            public const int ErrorNameUnsupported = -1;
+            public const string ContentItemType = "vnd.android.cursor.item/sim-contact_v2";
+            public const string ContentType = "vnd.android.cursor.dir/sim-contact_v2";
+            public const string ElementaryFileType = "elementary_file_type";
+            public const string Name = "name";
+            public const string PhoneNumber = "phone_number";
+            public const string RecordNumber = "record_number";
+            public const string SubscriptionId = "subscription_id";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public static Uri GetContentUri(int subscriptionId, int efType);
+            public static int GetEncodedNameLength(ContentResolver resolver, string name);
+            public static Uri GetItemUri(int subscriptionId, int efType, int recordNumber);
+        }
+    }
     public sealed class Telephony : Object {
         public sealed class ServiceStateTable : Object {
+            public const string DataNetworkType = "data_network_type";
+            public const string DataRegState = "data_reg_state";
+            public const string DuplexMode = "duplex_mode";
         }
     }
 }

Android.SE.Omapi

 namespace Android.SE.Omapi {
     public sealed class SEService : Object {
+        public const string ActionSecureElementStateChanged = "android.se.omapi.action.SECURE_ELEMENT_STATE_CHANGED";
+        public const string ExtraReaderName = "android.se.omapi.extra.READER_NAME";
+        public const string ExtraReaderState = "android.se.omapi.extra.READER_STATE";
     }
 }

Android.Security

 namespace Android.Security {
+    public sealed class AppUriAuthenticationPolicy : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IDictionary<string, IDictionary<Uri, string>> AppAndUriMappings { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public AppUriAuthenticationPolicy.Builder AddAppAndUriMapping(string appPackageName, Uri uri, string alias);
+            public AppUriAuthenticationPolicy Build();
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class KeyChain : Object {
+        public static Intent CreateManageCredentialsIntent(AppUriAuthenticationPolicy policy);
+        public static AppUriAuthenticationPolicy GetCredentialManagementAppPolicy(Context context);
+        public static bool IsCredentialManagementApp(Context context);
+        public static bool RemoveCredentialManagementApp(Context context);
     }
 }

Android.Security.Identity

 namespace Android.Security.Identity {
     public abstract class IdentityCredential : Object {
+        public virtual byte[] Delete(byte[] challenge);
+        public virtual byte[] ProveOwnership(byte[] challenge);
+        public virtual void SetAllowUsingExpiredKeys(bool allowUsingExpiredKeys);
+        public virtual byte[] Update(PersonalizationData personalizationData);
     }
 }

Android.Security.Keystore

 namespace Android.Security.Keystore {
+    public class BackendBusyException : ProviderException {
+        public BackendBusyException(long backOffHintMillis);
+        public BackendBusyException(long backOffHintMillis, string message);
+        public BackendBusyException(long backOffHintMillis, string message, Throwable cause);
+        protected BackendBusyException(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual long BackOffHintMillis { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
     public sealed class KeyGenParameterSpec : Object, IAlgorithmParameterSpec, IDisposable, IJavaObject, IJavaPeerable {
+        public string? AttestKeyAlias { get; }
+        public bool IsDevicePropertiesAttestationIncluded { get; }
+        public int MaxUsageCount { get; }
         public sealed class Builder : Object {
+            public KeyGenParameterSpec.Builder SetAttestKeyAlias(string? attestKeyAlias);
+            public KeyGenParameterSpec.Builder SetDevicePropertiesAttestationIncluded(bool devicePropertiesAttestationIncluded);
+            public KeyGenParameterSpec.Builder SetMaxUsageCount(int maxUsageCount);
         }
     }
     public class KeyInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IKeySpec {
+        public virtual int RemainingUsageCount { get; }
+        public virtual int SecurityLevel { get; }
     }
     public abstract class KeyProperties : Object {
+        public const KeyStorePurpose PurposeAgreeKey = KeyStorePurpose.AgreeKey;
+        public const KeyStorePurpose PurposeAttestKey = KeyStorePurpose.AttestKey;
+        public const KeyStoreSecurityLevel SecurityLevelSoftware = KeyStoreSecurityLevel.Software;
+        public const KeyStoreSecurityLevel SecurityLevelStrongbox = KeyStoreSecurityLevel.Strongbox;
+        public const KeyStoreSecurityLevel SecurityLevelTrustedEnvironment = KeyStoreSecurityLevel.TrustedEnvironment;
+        public const KeyStoreSecurityLevel SecurityLevelUnknown = KeyStoreSecurityLevel.Unknown;
+        public const KeyStoreSecurityLevel SecurityLevelUnknownSecure = KeyStoreSecurityLevel.UnknownSecure;
+        public const int UnrestrictedUsageCount = -1;
     }
     public sealed class KeyProtection : Object, IDisposable, IJavaObject, IJavaPeerable, KeyStore.IProtectionParameter {
+        public int MaxUsageCount { get; }
         public sealed class Builder : Object {
+            public KeyProtection.Builder SetIsStrongBoxBacked(bool isStrongBoxBacked);
+            public KeyProtection.Builder SetMaxUsageCount(int maxUsageCount);
         }
     }
     public enum KeyStorePurpose {
+        AgreeKey = 64,
+        AttestKey = 128,
     }
+    public enum KeyStoreSecurityLevel {
+        Software = 0,
+        Strongbox = 2,
+        TrustedEnvironment = 1,
+        Unknown = -2,
+        UnknownSecure = -1,
+    }
 }

Android.Service.Autofill

 namespace Android.Service.Autofill {
     public abstract class AutofillService : Service {
+        public virtual void OnSavedDatasetsInfoRequest(ISavedDatasetsInfoCallback callback);
     }
     public sealed class Dataset : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Builder : Object {
+            public Dataset.Builder SetInlinePresentation(InlinePresentation inlinePresentation, InlinePresentation inlineTooltipPresentation);
+            public Dataset.Builder SetValue(AutofillId id, AutofillValue? value, RemoteViews presentation, InlinePresentation inlinePresentation, InlinePresentation inlineTooltipPresentation);
+            public Dataset.Builder SetValue(AutofillId id, AutofillValue? value, Pattern? filter, RemoteViews presentation, InlinePresentation inlinePresentation, InlinePresentation inlineTooltipPresentation);
         }
     }
+    public enum EventNoSaveUiReason {
+        DatasetMatch = 6,
+        FieldValidationFailed = 5,
+        HasEmptyRequired = 3,
+        None = 0,
+        NoSaveInfo = 1,
+        NoValueChanged = 4,
+        WithDelaySaveFlag = 2,
+    }
     public sealed class FillEventHistory : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Event : Object {
+            public const EventNoSaveUiReason NoSaveUiReasonDatasetMatch = EventNoSaveUiReason.DatasetMatch;
+            public const EventNoSaveUiReason NoSaveUiReasonFieldValidationFailed = EventNoSaveUiReason.FieldValidationFailed;
+            public const EventNoSaveUiReason NoSaveUiReasonHasEmptyRequired = EventNoSaveUiReason.HasEmptyRequired;
+            public const EventNoSaveUiReason NoSaveUiReasonNone = EventNoSaveUiReason.None;
+            public const EventNoSaveUiReason NoSaveUiReasonNoSaveInfo = EventNoSaveUiReason.NoSaveInfo;
+            public const EventNoSaveUiReason NoSaveUiReasonNoValueChanged = EventNoSaveUiReason.NoValueChanged;
+            public const EventNoSaveUiReason NoSaveUiReasonWithDelaySaveFlag = EventNoSaveUiReason.WithDelaySaveFlag;
+            public int NoSaveUiReason { get; }
         }
     }
     public sealed class FillResponse : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public sealed class Builder : Object {
+            public FillResponse.Builder SetAuthentication(AutofillId[] ids, IntentSender? authentication, RemoteViews? presentation, InlinePresentation? inlinePresentation, InlinePresentation? inlineTooltipPresentation);
         }
     }
     public sealed class InlinePresentation : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static InlinePresentation CreateTooltipPresentation(Slice slice, InlinePresentationSpec spec);
     }
+    public interface ISavedDatasetsInfoCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnError(int error);
+        void OnSuccess(ICollection<SavedDatasetsInfo> results);
+    }
+    public enum SavedDatasetsErrorCode {
+        NeedsUserAction = 2,
+        Other = 0,
+        Unsupported = 1,
+    }
+    public sealed class SavedDatasetsInfo : Object {
+        public const string TypeOther = "other";
+        public const string TypePasswords = "passwords";
+        public SavedDatasetsInfo(string type, int count);
+        public int Count { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public string Type { get; }
+    }
 }

Android.Service.Controls.Templates

 namespace Android.Service.Controls.Templates {
     public abstract class ControlTemplate : Object {
+        public const ControlTemplateType TypeThumbnail = ControlTemplateType.Thumbnail;
     }
     public enum ControlTemplateType {
+        Thumbnail = 3,
     }
+    public sealed class ThumbnailTemplate : ControlTemplate {
+        public ThumbnailTemplate(string templateId, bool active, Icon thumbnail, ICharSequence contentDescription);
+        public ThumbnailTemplate(string templateId, bool active, Icon thumbnail, string contentDescription);
+        public string? ContentDescription { get; }
+        public ICharSequence ContentDescriptionFormatted { get; }
+        public bool IsActive { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public override int TemplateType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public Icon Thumbnail { get; }
+    }
 }

Android.Service.Notification

 namespace Android.Service.Notification {
+    public enum FlagFilterType {
+        Alerting = 2,
+        Conversations = 1,
+        Ongoing = 8,
+        Silent = 4,
+    }
     public enum NotificationCancelReason {
+        ChannelRemoved = 20,
+        ClearData = 21,
     }
     public abstract class NotificationListenerService : Service {
+        public const FlagFilterType FlagFilterTypeAlerting = FlagFilterType.Alerting;
+        public const FlagFilterType FlagFilterTypeConversations = FlagFilterType.Conversations;
+        public const FlagFilterType FlagFilterTypeOngoing = FlagFilterType.Ongoing;
+        public const FlagFilterType FlagFilterTypeSilent = FlagFilterType.Silent;
+        public const NotificationCancelReason ReasonChannelRemoved = NotificationCancelReason.ChannelRemoved;
+        public const NotificationCancelReason ReasonClearData = NotificationCancelReason.ClearData;
+        public const string MetaDataDefaultFilterTypes = "android.service.notification.default_filter_types";
+        public const string MetaDataDisabledFilterTypes = "android.service.notification.disabled_filter_types";
+        public void MigrateNotificationFilter(int defaultTypes, IList<string>? disallowedPkgs);
         public class Ranking : Object {
+            public const int VisibilityNoOverride = -1000;
+            public virtual ShortcutInfo ConversationShortcutInfo { get; }
+            public virtual bool IsConversation { get; }
+            public virtual int LockscreenVisibilityOverride { get; }
         }
     }
 }

Android.Service.Textservice

 namespace Android.Service.Textservice {
     public abstract class SpellCheckerService : Service {
         public abstract class Session : Object {
+            public virtual int SupportedAttributes { get; }
         }
     }
 }

Android.Speech

 namespace Android.Speech {
     public abstract class RecognitionService : Service {
         public class Callback : Object {
+            public virtual AttributionSource CallingAttributionSource { get; }
         }
     }
     public class RecognizerIntent : Object {
+        public const string ExtraAudioInjectSource = "android.speech.extra.AUDIO_INJECT_SOURCE";
     }
     public class SpeechRecognizer : Object {
+        public const SpeechRecognizerError ErrorLanguageNotSupported = SpeechRecognizerError.LanguageNotSupported;
+        public const SpeechRecognizerError ErrorLanguageUnavailable = SpeechRecognizerError.LanguageUnavailable;
+        public const SpeechRecognizerError ErrorServerDisconnected = SpeechRecognizerError.ServerDisconnected;
+        public const SpeechRecognizerError ErrorTooManyRequests = SpeechRecognizerError.TooManyRequests;
+        public static SpeechRecognizer CreateOnDeviceSpeechRecognizer(Context context);
+        public static bool IsOnDeviceRecognitionAvailable(Context context);
-        public static bool IsRecognitionAvailable(Context? context);
+        public static bool IsRecognitionAvailable(Context context);
     }
     public enum SpeechRecognizerError {
+        LanguageNotSupported = 12,
+        LanguageUnavailable = 13,
+        ServerDisconnected = 11,
+        TooManyRequests = 10,
     }
 }

Android.Speech.Tts

 namespace Android.Speech.Tts {
     public class TextToSpeech : Object {
+        public virtual OperationResult AddEarcon(string earcon, Uri uri);
+        public virtual OperationResult AddSpeech(ICharSequence text, Uri uri);
+        public OperationResult AddSpeech(string text, Uri uri);
     }
 }

Android.Systems

 namespace Android.Systems {
     public sealed class Os : Object {
+        public static int Recvmsg(FileDescriptor fd, StructMsghdr msg, int flags);
+        public static int Sendmsg(FileDescriptor fd, StructMsghdr msg, int flags);
     }
     public sealed class OsConstants : Object {
+        public static int AfVsock { get; }
+        public static int Enonet { get; }
+        public static int SolUdp { get; }
+        public static int UdpGro { get; }
+        public static int UdpSegment { get; }
+        public static int VmaddrCidAny { get; }
+        public static int VmaddrCidHost { get; }
+        public static int VmaddrCidLocal { get; }
+        public static int VmaddrPortAny { get; }
     }
+    public sealed class StructCmsghdr : Object {
+        public StructCmsghdr(int cmsg_level, int cmsg_type, byte[] value);
+        public StructCmsghdr(int cmsg_level, int cmsg_type, short value);
+        public IList<byte>? CmsgData { get; set; }
+        public int CmsgLevel { get; set; }
+        public int CmsgType { get; set; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class StructMsghdr : Object {
+        public StructMsghdr(SocketAddress? msg_name, ByteBuffer[] msg_iov, StructCmsghdr[]? msg_control, int msg_flags);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<StructCmsghdr>? MsgControl { get; set; }
+        public int MsgFlags { get; set; }
+        public IList<ByteBuffer>? MsgIov { get; set; }
+        public SocketAddress? MsgName { get; set; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
 }

Android.Telecom

 namespace Android.Telecom {
     public sealed class Call : Object {
+        public const string EventClearDiagnosticMessage = "android.telecom.event.CLEAR_DIAGNOSTIC_MESSAGE";
+        public const string EventDisplayDiagnosticMessage = "android.telecom.event.DISPLAY_DIAGNOSTIC_MESSAGE";
+        public const string ExtraDiagnosticMessage = "android.telecom.extra.DIAGNOSTIC_MESSAGE";
+        public const string ExtraDiagnosticMessageId = "android.telecom.extra.DIAGNOSTIC_MESSAGE_ID";
+        public void AddConferenceParticipants(IList<Uri> participants);
         public class Details : Object {
+            public const CallCapability CapabilityAddParticipant = CallCapability.AddParticipant;
+            public const CallProperty PropertyCrossSim = CallProperty.CrossSim;
+            public const CallProperty PropertyIsAdhocConference = CallProperty.IsAdhocConference;
+            public int State { get; }
         }
     }
     public enum CallCapability {
+        AddParticipant = 33554432,
     }
+    public enum CallComposerAttachment {
+        Location = 2,
+        None = 0,
+        Picture = 1,
+        Priority = 8,
+        Subject = 4,
+    }
     public enum CallProperty {
+        CrossSim = 16384,
+        IsAdhocConference = 8192,
     }
     public abstract class CallScreeningService : Service {
         public class CallResponse : Object {
+            public const CallComposerAttachment CallComposerAttachmentLocation = CallComposerAttachment.Location;
+            public const CallComposerAttachment CallComposerAttachmentPicture = CallComposerAttachment.Picture;
+            public const CallComposerAttachment CallComposerAttachmentPriority = CallComposerAttachment.Priority;
+            public const CallComposerAttachment CallComposerAttachmentSubject = CallComposerAttachment.Subject;
+            public virtual int CallComposerAttachmentsToShow { get; }
             public class Builder : Object {
+                public virtual CallScreeningService.CallResponse.Builder SetCallComposerAttachmentsToShow(int callComposerAttachmentsToShow);
             }
         }
     }
     public abstract class Conference : Conferenceable {
+        public bool RingbackRequested { get; set; }
+        public static Conference CreateFailedConference(DisconnectCause disconnectCause, PhoneAccountHandle phoneAccount);
+        public virtual void OnAddConferenceParticipants(IList<Uri> participants);
+        public virtual void OnAnswer(int videoState);
+        public virtual void OnReject();
+        public void SetRinging();
     }
     public abstract class Connection : Conferenceable {
+        public const ConnectionCapability CapabilityAddParticipant = ConnectionCapability.AddParticipant;
+        public const ConnectionProperties PropertyCrossSim = ConnectionProperties.CrossSim;
+        public const ConnectionProperties PropertyIsAdhocConference = ConnectionProperties.IsAdhocConference;
+        public const string ExtraAudioCodecBandwidthKhz = "android.telecom.extra.AUDIO_CODEC_BANDWIDTH_KHZ";
+        public const string ExtraAudioCodecBitrateKbps = "android.telecom.extra.AUDIO_CODEC_BITRATE_KBPS";
+        public virtual void OnAddConferenceParticipants(IList<Uri> participants);
+        public virtual void OnTrackedByNonUiService(bool isTracked);
+        public virtual void OnUsingAlternativeUi(bool isUsingAlternativeUi);
     }
     public enum ConnectionCapability {
+        AddParticipant = 67108864,
     }
     public enum ConnectionProperties {
+        CrossSim = 8192,
+        IsAdhocConference = 4096,
     }
     public abstract class ConnectionService : Service {
+        public RemoteConference CreateRemoteIncomingConference(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
-        public RemoteConnection CreateRemoteIncomingConnection(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
+        public RemoteConnection? CreateRemoteIncomingConnection(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
+        public RemoteConference CreateRemoteOutgoingConference(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
-        public RemoteConnection CreateRemoteOutgoingConnection(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
+        public RemoteConnection? CreateRemoteOutgoingConnection(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
+        public virtual Conference? OnCreateIncomingConference(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
+        public virtual void OnCreateIncomingConferenceFailed(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
+        public virtual Conference? OnCreateOutgoingConference(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
+        public virtual void OnCreateOutgoingConferenceFailed(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request);
     }
     public sealed class DisconnectCause : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string ReasonEmulatingSingleCall = "EMULATING_SINGLE_CALL";
+        public const string ReasonImsAccessBlocked = "REASON_IMS_ACCESS_BLOCKED";
+        public const string ReasonWifiOnButWfcOff = "REASON_WIFI_ON_BUT_WFC_OFF";
     }
     public sealed class PhoneAccount : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PhoneAccountCapability CapabilityCallComposer = PhoneAccountCapability.CallComposer;
+        public const string ExtraAddSelfManagedCallsToIncallservice = "android.telecom.extra.ADD_SELF_MANAGED_CALLS_TO_INCALLSERVICE";
+        public const string ExtraAlwaysUseVoipAudioMode = "android.telecom.extra.ALWAYS_USE_VOIP_AUDIO_MODE";
     }
     public enum PhoneAccountCapability {
+        CallComposer = 32768,
     }
+    public enum Priority {
+        Normal = 0,
+        Urgent = 1,
+    }
     public sealed class RemoteConnection : Object {
+        public void AddConferenceParticipants(IList<Uri> participants);
     }
     public class TelecomManager : Object {
+        public const Priority PriorityNormal = Priority.Normal;
+        public const Priority PriorityUrgent = Priority.Urgent;
+        public const string ExtraHasPicture = "android.telecom.extra.HAS_PICTURE";
+        public const string ExtraLocation = "android.telecom.extra.LOCATION";
+        public const string ExtraOutgoingPicture = "android.telecom.extra.OUTGOING_PICTURE";
+        public const string ExtraPictureUri = "android.telecom.extra.PICTURE_URI";
+        public const string ExtraPriority = "android.telecom.extra.PRIORITY";
+        public virtual bool HasManageOngoingCallsPermission { get; }
+        public virtual void AddNewIncomingConference(PhoneAccountHandle phoneAccount, Bundle extras);
+        public virtual void StartConference(IList<Uri> participants, Bundle extras);
     }
 }

Android.Telephony

 namespace Android.Telephony {
     public sealed class AccessNetworkConstants : Object {
         public sealed class NgranBands : Object {
+            public const int Band26 = 26;
+            public const int Band46 = 46;
+            public const int Band53 = 53;
+            public const int Band96 = 96;
         }
     }
+    public enum CallComposerErrorCode {
+        AuthenticationFailed = 3,
+        FileTooLarge = 2,
+        InputClosed = 4,
+        IoException = 5,
+        NetworkUnavailable = 6,
+        RemoteEndClosed = 1,
+        Unknown = 0,
+    }
+    public enum CallComposerStatus {
+        Off = 0,
+        On = 1,
+    }
+    public enum CallDisconnectCause {
+        AlreadyDialing = 72,
+        AnsweredElsewhere = 52,
+        Busy = 4,
+        CallBarred = 20,
+        CallingDisabled = 74,
+        CallPulled = 51,
+        CantCallWhileRinging = 73,
+        CdmaAccessBlocked = 35,
+        CdmaAccessFailure = 32,
+        CdmaAlreadyActivated = 49,
+        CdmaDrop = 27,
+        CdmaIntercept = 28,
+        CdmaLockedUntilPowerCycle = 26,
+        CdmaNotEmergency = 34,
+        CdmaPreempted = 33,
+        CdmaReorder = 29,
+        CdmaRetryOrder = 31,
+        CdmaSoReject = 30,
+        Congestion = 5,
+        CsRestricted = 22,
+        CsRestrictedEmergency = 24,
+        CsRestrictedNormal = 23,
+        DataDisabled = 54,
+        DataLimitReached = 55,
+        DialedCallForwardingWhileRoaming = 57,
+        DialedMmi = 39,
+        DialLowBattery = 62,
+        DialModifiedToDial = 48,
+        DialModifiedToDialVideo = 66,
+        DialModifiedToSs = 47,
+        DialModifiedToUssd = 46,
+        DialVideoModifiedToDial = 69,
+        DialVideoModifiedToDialVideo = 70,
+        DialVideoModifiedToSs = 67,
+        DialVideoModifiedToUssd = 68,
+        EmergencyCallOverWfcNotAvailable = 78,
+        EmergencyPermFailure = 64,
+        EmergencyTempFailure = 63,
+        ErrorUnspecified = 36,
+        FdnBlocked = 21,
+        IccError = 19,
+        ImeiNotAccepted = 58,
+        ImsAccessBlocked = 60,
+        ImsMergedSuccessfully = 45,
+        ImsSipAlternateEmergencyCall = 71,
+        IncomingAutoRejected = 81,
+        IncomingMissed = 1,
+        IncomingRejected = 16,
+        InvalidCredentials = 10,
+        InvalidNumber = 7,
+        LimitExceeded = 15,
+        Local = 3,
+        LostSignal = 14,
+        LowBattery = 61,
+        MaximumNumberOfCallsReached = 53,
+        MediaTimeout = 77,
+        Mmi = 6,
+        NoPhoneNumberSupplied = 38,
+        Normal = 2,
+        NormalUnspecified = 65,
+        NotDisconnected = 0,
+        NotValid = -1,
+        NumberUnreachable = 8,
+        OtaspProvisioningInProcess = 76,
+        OutgoingCanceled = 44,
+        OutgoingEmergencyCallPlaced = 80,
+        OutgoingFailure = 43,
+        OutOfNetwork = 11,
+        OutOfService = 18,
+        PowerOff = 17,
+        ServerError = 12,
+        ServerUnreachable = 9,
+        TimedOut = 13,
+        TooManyOngoingCalls = 75,
+        UnobtainableNumber = 25,
+        VideoCallNotAllowedWhileTtyEnabled = 50,
+        VoicemailNumberMissing = 40,
+        WfcServiceNotAvailableInThisLocation = 79,
+        WifiLost = 59,
+    }
     public class CarrierConfigManager : Object {
+        public const int CarrierNrAvailabilityNsa = 1;
+        public const int CarrierNrAvailabilitySa = 2;
+        public const int CrossSimSpnFormatCarrierNameOnly = 0;
+        public const int CrossSimSpnFormatCarrierNameWithBranding = 1;
+        public const int ServiceClassNone = 0;
+        public const int ServiceClassVoice = 1;
+        public const int UssdOverCsOnly = 2;
+        public const int UssdOverCsPreferred = 0;
+        public const int UssdOverImsOnly = 3;
+        public const int UssdOverImsPreferred = 1;
+        public const string ExtraRebroadcastOnUnlock = "android.telephony.extra.REBROADCAST_ON_UNLOCK";
+        public const string KeyCallBarringDefaultServiceClassInt = "call_barring_default_service_class_int";
+        public const string KeyCallComposerPictureServerUrlString = "call_composer_picture_server_url_string";
+        public const string KeyCarrierCrossSimImsAvailableBool = "carrier_cross_sim_ims_available_bool";
+        public const string KeyCarrierNrAvailabilitiesIntArray = "carrier_nr_availabilities_int_array";
+        public const string KeyCarrierProvisionsWifiMergedNetworksBool = "carrier_provisions_wifi_merged_networks_bool";
+        public const string KeyCarrierUssdMethodInt = "carrier_ussd_method_int";
+        public const string KeyCrossSimSpnFormatInt = "cross_sim_spn_format_int";
+        public const string KeyDisplayCallStrengthIndicatorBool = "display_call_strength_indicator_bool";
+        public const string KeyHideEnable2g = "hide_enable_2g_bool";
+        public const string KeyHideTtyHcoVcoWithRttBool = "hide_tty_hco_vco_with_rtt";
+        public const string KeyRttAutoUpgradeBool = "rtt_auto_upgrade_bool";
+        public const string KeyRttDowngradeSupportedBool = "rtt_downgrade_supported_bool";
+        public const string KeyRttSupportedForVtBool = "rtt_supported_for_vt_bool";
+        public const string KeyRttSupportedWhileRoamingBool = "rtt_supported_while_roaming_bool";
+        public const string KeyRttUpgradeSupportedBool = "rtt_upgrade_supported_bool";
+        public const string KeyRttUpgradeSupportedForDowngradedVtCallBool = "rtt_upgrade_supported_for_downgraded_vt_call";
+        public const string KeySupportAddConferenceParticipantsBool = "support_add_conference_participants_bool";
+        public const string KeySupportAdhocConferenceCallsBool = "support_adhoc_conference_calls_bool";
+        public const string KeySupportsCallComposerBool = "supports_call_composer_bool";
+        public const string KeySupportsDeviceToDeviceCommunicationUsingDtmfBool = "supports_device_to_device_communication_using_dtmf_bool";
+        public const string KeySupportsDeviceToDeviceCommunicationUsingRtpBool = "supports_device_to_device_communication_using_rtp_bool";
+        public const string KeySupportsSdpNegotiationOfD2dRtpHeaderExtensionsBool = "supports_sdp_negotiation_of_d2d_rtp_header_extensions_bool";
+        public const string KeyUseAcsForRcsBool = "use_acs_for_rcs_bool";
+        public const string KeyUseIpForCallingIndicatorBool = "use_ip_for_calling_indicator_bool";
+        public const string KeyVtUpgradeSupportedForDowngradedRttCallBool = "vt_upgrade_supported_for_downgraded_rtt_call";
         public sealed class Ims : Object {
+            public const string KeyEnablePresenceCapabilityExchangeBool = "ims.enable_presence_capability_exchange_bool";
+            public const string KeyEnablePresenceGroupSubscribeBool = "ims.enable_presence_group_subscribe_bool";
+            public const string KeyEnablePresencePublishBool = "ims.enable_presence_publish_bool";
+            public const string KeyImsSingleRegistrationRequiredBool = "ims.ims_single_registration_required_bool";
+            public const string KeyNonRcsCapabilitiesCacheExpirationSecInt = "ims.non_rcs_capabilities_cache_expiration_sec_int";
+            public const string KeyRcsBulkCapabilityExchangeBool = "ims.rcs_bulk_capability_exchange_bool";
+            public const string KeyRcsFeatureTagAllowedStringArray = "ims.rcs_feature_tag_allowed_string_array";
         }
+        public sealed class ImsServiceEntitlement : Object {
+            public const string KeyEntitlementServerUrlString = "imsserviceentitlement.entitlement_server_url_string";
+            public const string KeyFcmSenderIdString = "imsserviceentitlement.fcm_sender_id_string";
+            public const string KeyImsProvisioningBool = "imsserviceentitlement.ims_provisioning_bool";
+            public const string KeyPrefix = "imsserviceentitlement.";
+            public const string KeyShowVowifiWebviewBool = "imsserviceentitlement.show_vowifi_webview_bool";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public sealed class Iwlan : Object {
+            public const IwlanAuthenticationMethod AuthenticationMethodCert = IwlanAuthenticationMethod.Cert;
+            public const IwlanAuthenticationMethod AuthenticationMethodEapOnly = IwlanAuthenticationMethod.EapOnly;
+            public const IwlanEpdgAddressType EpdgAddressCellularLoc = IwlanEpdgAddressType.CellularLoc;
+            public const IwlanEpdgAddressType EpdgAddressPco = IwlanEpdgAddressType.Pco;
+            public const IwlanEpdgAddressType EpdgAddressPlmn = IwlanEpdgAddressType.Plmn;
+            public const IwlanEpdgAddressType EpdgAddressStatic = IwlanEpdgAddressType.Static;
+            public const IwlanIdType IdTypeFqdn = IwlanIdType.Fqdn;
+            public const IwlanIdType IdTypeKeyId = IwlanIdType.KeyId;
+            public const IwlanIdType IdTypeRfc822Addr = IwlanIdType.Rfc822Addr;
+            public const string KeyAddKeToChildSessionRekeyBool = "iwlan.add_ke_to_child_session_rekey_bool";
+            public const string KeyChildSaRekeyHardTimerSecInt = "iwlan.child_sa_rekey_hard_timer_sec_int";
+            public const string KeyChildSaRekeySoftTimerSecInt = "iwlan.child_sa_rekey_soft_timer_sec_int";
+            public const string KeyChildSessionAesCbcKeySizeIntArray = "iwlan.child_session_aes_cbc_key_size_int_array";
+            public const string KeyChildSessionAesCtrKeySizeIntArray = "iwlan.child_session_aes_ctr_key_size_int_array";
+            public const string KeyDiffieHellmanGroupsIntArray = "iwlan.diffie_hellman_groups_int_array";
+            public const string KeyDpdTimerSecInt = "iwlan.dpd_timer_sec_int";
+            public const string KeyEpdgAddressPriorityIntArray = "iwlan.epdg_address_priority_int_array";
+            public const string KeyEpdgAuthenticationMethodInt = "iwlan.epdg_authentication_method_int";
+            public const string KeyEpdgPcoIdIpv4Int = "iwlan.epdg_pco_id_ipv4_int";
+            public const string KeyEpdgPcoIdIpv6Int = "iwlan.epdg_pco_id_ipv6_int";
+            public const string KeyEpdgStaticAddressRoamingString = "iwlan.epdg_static_address_roaming_string";
+            public const string KeyEpdgStaticAddressString = "iwlan.epdg_static_address_string";
+            public const string KeyIkeLocalIdTypeInt = "iwlan.ike_local_id_type_int";
+            public const string KeyIkeRekeyHardTimerSecInt = "iwlan.ike_rekey_hard_timer_in_sec";
+            public const string KeyIkeRekeySoftTimerSecInt = "iwlan.ike_rekey_soft_timer_sec_int";
+            public const string KeyIkeRemoteIdTypeInt = "iwlan.ike_remote_id_type_int";
+            public const string KeyIkeSessionAesCbcKeySizeIntArray = "iwlan.ike_session_encryption_aes_cbc_key_size_int_array";
+            public const string KeyIkeSessionAesCtrKeySizeIntArray = "iwlan.ike_session_encryption_aes_ctr_key_size_int_array";
+            public const string KeyMaxRetriesInt = "iwlan.max_retries_int";
+            public const string KeyMccMncsStringArray = "iwlan.mcc_mncs_string_array";
+            public const string KeyNattKeepAliveTimerSecInt = "iwlan.natt_keep_alive_timer_sec_int";
+            public const string KeyPrefix = "iwlan.";
+            public const string KeyRetransmitTimerMsecIntArray = "iwlan.retransmit_timer_sec_int_array";
+            public const string KeySupportedChildSessionEncryptionAlgorithmsIntArray = "iwlan.supported_child_session_encryption_algorithms_int_array";
+            public const string KeySupportedIkeSessionEncryptionAlgorithmsIntArray = "iwlan.supported_ike_session_encryption_algorithms_int_array";
+            public const string KeySupportedIntegrityAlgorithmsIntArray = "iwlan.supported_integrity_algorithms_int_array";
+            public const string KeySupportedPrfAlgorithmsIntArray = "iwlan.supported_prf_algorithms_int_array";
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
     }
     public sealed class CellSignalStrengthLte : CellSignalStrength, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int CqiTableIndex { get; }
     }
     public sealed class CellSignalStrengthNr : CellSignalStrength, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public IList<Integer> CsiCqiReport { get; }
+        public int CsiCqiTableIndex { get; }
     }
+    public enum D2DSharing {
+        All = 3,
+        AllContacts = 1,
+        Disabled = 0,
+        SelectedContacts = 2,
+    }
+    public enum DataEnabledReason {
+        Carrier = 2,
+        Policy = 1,
+        Thermal = 3,
+        User = 0,
+    }
     public sealed class DataFailCause : Object {
+        public const DataFailCauseType AllMatchingRulesFailed = DataFailCauseType.AllMatchingRulesFailed;
+        public const DataFailCauseType IwlanAuthorizationRejected = DataFailCauseType.IwlanAuthorizationRejected;
+        public const DataFailCauseType IwlanDnsResolutionNameFailure = DataFailCauseType.IwlanDnsResolutionNameFailure;
+        public const DataFailCauseType IwlanDnsResolutionTimeout = DataFailCauseType.IwlanDnsResolutionTimeout;
+        public const DataFailCauseType IwlanIkev2AuthFailure = DataFailCauseType.IwlanIkev2AuthFailure;
+        public const DataFailCauseType IwlanIkev2CertInvalid = DataFailCauseType.IwlanIkev2CertInvalid;
+        public const DataFailCauseType IwlanIkev2ConfigFailure = DataFailCauseType.IwlanIkev2ConfigFailure;
+        public const DataFailCauseType IwlanIkev2MsgTimeout = DataFailCauseType.IwlanIkev2MsgTimeout;
+        public const DataFailCauseType IwlanIllegalMe = DataFailCauseType.IwlanIllegalMe;
+        public const DataFailCauseType IwlanImeiNotAccepted = DataFailCauseType.IwlanImeiNotAccepted;
+        public const DataFailCauseType IwlanMaxConnectionReached = DataFailCauseType.IwlanMaxConnectionReached;
+        public const DataFailCauseType IwlanNetworkFailure = DataFailCauseType.IwlanNetworkFailure;
+        public const DataFailCauseType IwlanNoApnSubscription = DataFailCauseType.IwlanNoApnSubscription;
+        public const DataFailCauseType IwlanNon3gppAccessToEpcNotAllowed = DataFailCauseType.IwlanNon3gppAccessToEpcNotAllowed;
+        public const DataFailCauseType IwlanPdnConnectionRejection = DataFailCauseType.IwlanPdnConnectionRejection;
+        public const DataFailCauseType IwlanPlmnNotAllowed = DataFailCauseType.IwlanPlmnNotAllowed;
+        public const DataFailCauseType IwlanRatTypeNotAllowed = DataFailCauseType.IwlanRatTypeNotAllowed;
+        public const DataFailCauseType IwlanSemanticErrorInTheTftOperation = DataFailCauseType.IwlanSemanticErrorInTheTftOperation;
+        public const DataFailCauseType IwlanSemanticErrorsInPacketFilters = DataFailCauseType.IwlanSemanticErrorsInPacketFilters;
+        public const DataFailCauseType IwlanSyntacticalErrorInTheTftOperation = DataFailCauseType.IwlanSyntacticalErrorInTheTftOperation;
+        public const DataFailCauseType IwlanSyntacticalErrorsInPacketFilters = DataFailCauseType.IwlanSyntacticalErrorsInPacketFilters;
+        public const DataFailCauseType IwlanUnauthenticatedEmergencyNotSupported = DataFailCauseType.IwlanUnauthenticatedEmergencyNotSupported;
+        public const DataFailCauseType IwlanUserUnknown = DataFailCauseType.IwlanUserUnknown;
+        public const DataFailCauseType MatchAllRuleNotAllowed = DataFailCauseType.MatchAllRuleNotAllowed;
+        public const DataFailCauseType SliceRejected = DataFailCauseType.SliceRejected;
     }
     public enum DataFailCauseType {
+        AllMatchingRulesFailed = 2254,
+        IwlanAuthorizationRejected = 9003,
+        IwlanDnsResolutionNameFailure = 16388,
+        IwlanDnsResolutionTimeout = 16389,
+        IwlanIkev2AuthFailure = 16385,
+        IwlanIkev2CertInvalid = 16387,
+        IwlanIkev2ConfigFailure = 16384,
+        IwlanIkev2MsgTimeout = 16386,
+        IwlanIllegalMe = 9006,
+        IwlanImeiNotAccepted = 11005,
+        IwlanMaxConnectionReached = 8193,
+        IwlanNetworkFailure = 10500,
+        IwlanNoApnSubscription = 9002,
+        IwlanNon3gppAccessToEpcNotAllowed = 9000,
+        IwlanPdnConnectionRejection = 8192,
+        IwlanPlmnNotAllowed = 11011,
+        IwlanRatTypeNotAllowed = 11001,
+        IwlanSemanticErrorInTheTftOperation = 8241,
+        IwlanSemanticErrorsInPacketFilters = 8244,
+        IwlanSyntacticalErrorInTheTftOperation = 8242,
+        IwlanSyntacticalErrorsInPacketFilters = 8245,
+        IwlanUnauthenticatedEmergencyNotSupported = 11055,
+        IwlanUserUnknown = 9001,
+        MatchAllRuleNotAllowed = 2253,
+        SliceRejected = 2252,
     }
+    public sealed class DisconnectCause : Object {
+        public const CallDisconnectCause AlreadyDialing = CallDisconnectCause.AlreadyDialing;
+        public const CallDisconnectCause AnsweredElsewhere = CallDisconnectCause.AnsweredElsewhere;
+        public const CallDisconnectCause Busy = CallDisconnectCause.Busy;
+        public const CallDisconnectCause CallBarred = CallDisconnectCause.CallBarred;
+        public const CallDisconnectCause CallingDisabled = CallDisconnectCause.CallingDisabled;
+        public const CallDisconnectCause CallPulled = CallDisconnectCause.CallPulled;
+        public const CallDisconnectCause CantCallWhileRinging = CallDisconnectCause.CantCallWhileRinging;
+        public const CallDisconnectCause CdmaAccessBlocked = CallDisconnectCause.CdmaAccessBlocked;
+        public const CallDisconnectCause CdmaAccessFailure = CallDisconnectCause.CdmaAccessFailure;
+        public const CallDisconnectCause CdmaAlreadyActivated = CallDisconnectCause.CdmaAlreadyActivated;
+        public const CallDisconnectCause CdmaDrop = CallDisconnectCause.CdmaDrop;
+        public const CallDisconnectCause CdmaIntercept = CallDisconnectCause.CdmaIntercept;
+        public const CallDisconnectCause CdmaLockedUntilPowerCycle = CallDisconnectCause.CdmaLockedUntilPowerCycle;
+        public const CallDisconnectCause CdmaNotEmergency = CallDisconnectCause.CdmaNotEmergency;
+        public const CallDisconnectCause CdmaPreempted = CallDisconnectCause.CdmaPreempted;
+        public const CallDisconnectCause CdmaReorder = CallDisconnectCause.CdmaReorder;
+        public const CallDisconnectCause CdmaRetryOrder = CallDisconnectCause.CdmaRetryOrder;
+        public const CallDisconnectCause CdmaSoReject = CallDisconnectCause.CdmaSoReject;
+        public const CallDisconnectCause Congestion = CallDisconnectCause.Congestion;
+        public const CallDisconnectCause CsRestricted = CallDisconnectCause.CsRestricted;
+        public const CallDisconnectCause CsRestrictedEmergency = CallDisconnectCause.CsRestrictedEmergency;
+        public const CallDisconnectCause CsRestrictedNormal = CallDisconnectCause.CsRestrictedNormal;
+        public const CallDisconnectCause DataDisabled = CallDisconnectCause.DataDisabled;
+        public const CallDisconnectCause DataLimitReached = CallDisconnectCause.DataLimitReached;
+        public const CallDisconnectCause DialedCallForwardingWhileRoaming = CallDisconnectCause.DialedCallForwardingWhileRoaming;
+        public const CallDisconnectCause DialedMmi = CallDisconnectCause.DialedMmi;
+        public const CallDisconnectCause DialLowBattery = CallDisconnectCause.DialLowBattery;
+        public const CallDisconnectCause DialModifiedToDial = CallDisconnectCause.DialModifiedToDial;
+        public const CallDisconnectCause DialModifiedToDialVideo = CallDisconnectCause.DialModifiedToDialVideo;
+        public const CallDisconnectCause DialModifiedToSs = CallDisconnectCause.DialModifiedToSs;
+        public const CallDisconnectCause DialModifiedToUssd = CallDisconnectCause.DialModifiedToUssd;
+        public const CallDisconnectCause DialVideoModifiedToDial = CallDisconnectCause.DialVideoModifiedToDial;
+        public const CallDisconnectCause DialVideoModifiedToDialVideo = CallDisconnectCause.DialVideoModifiedToDialVideo;
+        public const CallDisconnectCause DialVideoModifiedToSs = CallDisconnectCause.DialVideoModifiedToSs;
+        public const CallDisconnectCause DialVideoModifiedToUssd = CallDisconnectCause.DialVideoModifiedToUssd;
+        public const CallDisconnectCause EmergencyCallOverWfcNotAvailable = CallDisconnectCause.EmergencyCallOverWfcNotAvailable;
+        public const CallDisconnectCause EmergencyPermFailure = CallDisconnectCause.EmergencyPermFailure;
+        public const CallDisconnectCause EmergencyTempFailure = CallDisconnectCause.EmergencyTempFailure;
+        public const CallDisconnectCause ErrorUnspecified = CallDisconnectCause.ErrorUnspecified;
+        public const CallDisconnectCause FdnBlocked = CallDisconnectCause.FdnBlocked;
+        public const CallDisconnectCause IccError = CallDisconnectCause.IccError;
+        public const CallDisconnectCause ImeiNotAccepted = CallDisconnectCause.ImeiNotAccepted;
+        public const CallDisconnectCause ImsAccessBlocked = CallDisconnectCause.ImsAccessBlocked;
+        public const CallDisconnectCause ImsMergedSuccessfully = CallDisconnectCause.ImsMergedSuccessfully;
+        public const CallDisconnectCause ImsSipAlternateEmergencyCall = CallDisconnectCause.ImsSipAlternateEmergencyCall;
+        public const CallDisconnectCause IncomingAutoRejected = CallDisconnectCause.IncomingAutoRejected;
+        public const CallDisconnectCause IncomingMissed = CallDisconnectCause.IncomingMissed;
+        public const CallDisconnectCause IncomingRejected = CallDisconnectCause.IncomingRejected;
+        public const CallDisconnectCause InvalidCredentials = CallDisconnectCause.InvalidCredentials;
+        public const CallDisconnectCause InvalidNumber = CallDisconnectCause.InvalidNumber;
+        public const CallDisconnectCause LimitExceeded = CallDisconnectCause.LimitExceeded;
+        public const CallDisconnectCause Local = CallDisconnectCause.Local;
+        public const CallDisconnectCause LostSignal = CallDisconnectCause.LostSignal;
+        public const CallDisconnectCause LowBattery = CallDisconnectCause.LowBattery;
+        public const CallDisconnectCause MaximumNumberOfCallsReached = CallDisconnectCause.MaximumNumberOfCallsReached;
+        public const CallDisconnectCause MediaTimeout = CallDisconnectCause.MediaTimeout;
+        public const CallDisconnectCause Mmi = CallDisconnectCause.Mmi;
+        public const CallDisconnectCause NoPhoneNumberSupplied = CallDisconnectCause.NoPhoneNumberSupplied;
+        public const CallDisconnectCause Normal = CallDisconnectCause.Normal;
+        public const CallDisconnectCause NormalUnspecified = CallDisconnectCause.NormalUnspecified;
+        public const CallDisconnectCause NotDisconnected = CallDisconnectCause.NotDisconnected;
+        public const CallDisconnectCause NotValid = CallDisconnectCause.NotValid;
+        public const CallDisconnectCause NumberUnreachable = CallDisconnectCause.NumberUnreachable;
+        public const CallDisconnectCause OtaspProvisioningInProcess = CallDisconnectCause.OtaspProvisioningInProcess;
+        public const CallDisconnectCause OutgoingCanceled = CallDisconnectCause.OutgoingCanceled;
+        public const CallDisconnectCause OutgoingEmergencyCallPlaced = CallDisconnectCause.OutgoingEmergencyCallPlaced;
+        public const CallDisconnectCause OutgoingFailure = CallDisconnectCause.OutgoingFailure;
+        public const CallDisconnectCause OutOfNetwork = CallDisconnectCause.OutOfNetwork;
+        public const CallDisconnectCause OutOfService = CallDisconnectCause.OutOfService;
+        public const CallDisconnectCause PowerOff = CallDisconnectCause.PowerOff;
+        public const CallDisconnectCause ServerError = CallDisconnectCause.ServerError;
+        public const CallDisconnectCause ServerUnreachable = CallDisconnectCause.ServerUnreachable;
+        public const CallDisconnectCause TimedOut = CallDisconnectCause.TimedOut;
+        public const CallDisconnectCause TooManyOngoingCalls = CallDisconnectCause.TooManyOngoingCalls;
+        public const CallDisconnectCause UnobtainableNumber = CallDisconnectCause.UnobtainableNumber;
+        public const CallDisconnectCause VideoCallNotAllowedWhileTtyEnabled = CallDisconnectCause.VideoCallNotAllowedWhileTtyEnabled;
+        public const CallDisconnectCause VoicemailNumberMissing = CallDisconnectCause.VoicemailNumberMissing;
+        public const CallDisconnectCause WfcServiceNotAvailableInThisLocation = CallDisconnectCause.WfcServiceNotAvailableInThisLocation;
+        public const CallDisconnectCause WifiLost = CallDisconnectCause.WifiLost;
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public enum EnhancedRoamingIndicator {
+        Flash = 2,
+        Off = 1,
+        On = 0,
+    }
+    public enum IwlanAuthenticationMethod {
+        Cert = 1,
+        EapOnly = 0,
+    }
+    public enum IwlanEpdgAddressType {
+        CellularLoc = 3,
+        Pco = 2,
+        Plmn = 1,
+        Static = 0,
+    }
+    public enum IwlanIdType {
+        Fqdn = 2,
+        KeyId = 11,
+        Rfc822Addr = 3,
+    }
     public class MbmsDownloadSession : Object, IAutoCloseable, IDisposable, IJavaObject, IJavaPeerable {
+        public static int MaximumServiceAnnouncementSize { get; }
+        public virtual void AddServiceAnnouncement(byte[] contents);
     }
     public enum OverrideNetworkType {
+        NrAdvanced = 5,
     }
     public class PhoneNumberUtils : Object {
+        public static bool AreSamePhoneNumber(string number1, string number2, string defaultCountryIso);
     }
     public class PhoneStateListener : Object {
+        public virtual void OnEmergencyNumberListChanged(IDictionary<Integer, IList<EmergencyNumber>> emergencyNumberList);
     }
+    public sealed class PhysicalChannelConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const PhysicalChannelConnectionStatus ConnectionPrimaryServing = PhysicalChannelConnectionStatus.PrimaryServing;
+        public const PhysicalChannelConnectionStatus ConnectionSecondaryServing = PhysicalChannelConnectionStatus.SecondaryServing;
+        public const PhysicalChannelConnectionStatus ConnectionUnknown = PhysicalChannelConnectionStatus.Unknown;
+        public const int BandUnknown = 0;
+        public const int CellBandwidthUnknown = 0;
+        public const int ChannelNumberUnknown = 2147483647;
+        public const int FrequencyUnknown = -1;
+        public const int PhysicalCellIdMaximumValue = 1007;
+        public const int PhysicalCellIdUnknown = -1;
+        public int Band { get; }
+        public int CellBandwidthDownlinkKhz { get; }
+        public int CellBandwidthUplinkKhz { get; }
+        public int ConnectionStatus { get; }
+        public static IParcelableCreator Creator { get; }
+        public int DownlinkChannelNumber { get; }
+        public int DownlinkFrequencyKhz { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int NetworkType { get; }
+        public int PhysicalCellId { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int UplinkChannelNumber { get; }
+        public int UplinkFrequencyKhz { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum PhysicalChannelConnectionStatus {
+        PrimaryServing = 1,
+        SecondaryServing = 2,
+        Unknown = -1,
+    }
     public sealed class PreciseDataConnectionState : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int Id { get; }
+        public int TransportType { get; }
     }
+    public enum SignalMeasurementType {
+        Rscp = 2,
+        Rsrp = 3,
+        Rsrq = 4,
+        Rssi = 1,
+        Rssnr = 5,
+        Ssrsrp = 6,
+        Ssrsrq = 7,
+        Sssinr = 8,
+        Unknown = 0,
+    }
     public class SignalStrength : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public SignalStrength(SignalStrength s);
     }
+    public sealed class SignalStrengthUpdateRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public bool IsReportingRequestedWhileIdle { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<SignalThresholdInfo> SignalThresholdInfos { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public SignalStrengthUpdateRequest Build();
+            public SignalStrengthUpdateRequest.Builder SetReportingRequestedWhileIdle(bool isReportingRequestedWhileIdle);
+            public SignalStrengthUpdateRequest.Builder SetSignalThresholdInfos(ICollection<SignalThresholdInfo> signalThresholdInfos);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class SignalThresholdInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const SignalMeasurementType SignalMeasurementTypeRscp = SignalMeasurementType.Rscp;
+        public const SignalMeasurementType SignalMeasurementTypeRsrp = SignalMeasurementType.Rsrp;
+        public const SignalMeasurementType SignalMeasurementTypeRsrq = SignalMeasurementType.Rsrq;
+        public const SignalMeasurementType SignalMeasurementTypeRssi = SignalMeasurementType.Rssi;
+        public const SignalMeasurementType SignalMeasurementTypeRssnr = SignalMeasurementType.Rssnr;
+        public const SignalMeasurementType SignalMeasurementTypeSsrsrp = SignalMeasurementType.Ssrsrp;
+        public const SignalMeasurementType SignalMeasurementTypeSsrsrq = SignalMeasurementType.Ssrsrq;
+        public const SignalMeasurementType SignalMeasurementTypeSssinr = SignalMeasurementType.Sssinr;
+        public const SignalMeasurementType SignalMeasurementTypeUnknown = SignalMeasurementType.Unknown;
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public static int MaximumNumberOfThresholdsAllowed { get; }
+        public static int MinimumNumberOfThresholdsAllowed { get; }
+        public int RadioAccessNetworkType { get; }
+        public int SignalMeasurementType { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public int[] GetThresholds();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public SignalThresholdInfo Build();
+            public SignalThresholdInfo.Builder SetRadioAccessNetworkType(int ran);
+            public SignalThresholdInfo.Builder SetSignalMeasurementType(int signalMeasurementType);
+            public SignalThresholdInfo.Builder SetThresholds(int[] thresholds);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
     public sealed class SmsManager : Object {
+        public const SmsResult ResultRilAccessBarred = SmsResult.RilAccessBarred;
+        public const SmsResult ResultRilBlockedDueToCall = SmsResult.RilBlockedDueToCall;
+        public const SmsResult ResultRilSimultaneousSmsAndCallNotAllowed = SmsResult.RilSimultaneousSmsAndCallNotAllowed;
+        public int SmsCapacityOnIcc { get; }
+        public SmsManager CreateForSubscriptionId(int subId);
+        public void DownloadMultimediaMessage(Context context, string locationUrl, Uri contentUri, Bundle? configOverrides, PendingIntent? downloadedIntent, long messageId);
+        public void SendMultimediaMessage(Context context, Uri contentUri, string? locationUrl, Bundle? configOverrides, PendingIntent? sentIntent, long messageId);
     }
     public enum SmsResult {
+        RilAccessBarred = 122,
+        RilBlockedDueToCall = 123,
+        RilSimultaneousSmsAndCallNotAllowed = 121,
     }
     public class SubscriptionManager : Object {
+        public const D2DSharing D2dSharingAll = D2DSharing.All;
+        public const D2DSharing D2dSharingAllContacts = D2DSharing.AllContacts;
+        public const D2DSharing D2dSharingDisabled = D2DSharing.Disabled;
+        public const D2DSharing D2dSharingSelectedContacts = D2DSharing.SelectedContacts;
+        public const string D2dStatusSharing = "d2d_sharing_status";
+        public const string D2dStatusSharingSelectedContacts = "d2d_sharing_contacts";
+        public virtual IList<Uri> GetDeviceToDeviceStatusSharingContacts(int subscriptionId);
+        public virtual int GetDeviceToDeviceStatusSharingPreference(int subscriptionId);
+        public virtual void SetDeviceToDeviceStatusSharingContacts(int subscriptionId, IList<Uri> contacts);
+        public virtual void SetDeviceToDeviceStatusSharingPreference(int subscriptionId, int sharing);
+        public virtual void SetSubscriptionOverrideCongested(int subId, bool overrideCongested, int[] networkTypes, long timeoutMillis);
+        public virtual void SetSubscriptionOverrideUnmetered(int subId, bool overrideUnmetered, int[] networkTypes, long timeoutMillis);
     }
+    public class TelephonyCallback : Object {
+        public TelephonyCallback();
+        protected TelephonyCallback(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public class ActiveDataSubscriptionIdEventArgs : EventArgs {
+            public ActiveDataSubscriptionIdEventArgs(int subId);
+            public int SubId { get; }
+        }
+        public class BarringInfoEventArgs : EventArgs {
+            public BarringInfoEventArgs(BarringInfo barringInfo);
+            public BarringInfo BarringInfo { get; }
+        }
+        public class CallDisconnectCauseEventArgs : EventArgs {
+            public CallDisconnectCauseEventArgs(int disconnectCause, int preciseDisconnectCause);
+            public int DisconnectCause { get; }
+            public int PreciseDisconnectCause { get; }
+        }
+        public class CallForwardingIndicatorEventArgs : EventArgs {
+            public CallForwardingIndicatorEventArgs(bool cfi);
+            public bool Cfi { get; }
+        }
+        public class CallStateEventArgs : EventArgs {
+            public CallStateEventArgs(int state);
+            public int State { get; }
+        }
+        public class CarrierNetworkEventArgs : EventArgs {
+            public CarrierNetworkEventArgs(bool active);
+            public bool Active { get; }
+        }
+        public class CellInfoEventArgs : EventArgs {
+            public CellInfoEventArgs(IList<CellInfo> cellInfo);
+            public IList<CellInfo> CellInfo { get; }
+        }
+        public class CellLocationEventArgs : EventArgs {
+            public CellLocationEventArgs(CellLocation location);
+            public CellLocation Location { get; }
+        }
+        public class DataActivationStateEventArgs : EventArgs {
+            public DataActivationStateEventArgs(int state);
+            public int State { get; }
+        }
+        public class DataActivityEventArgs : EventArgs {
+            public DataActivityEventArgs(int direction);
+            public int Direction { get; }
+        }
+        public class DataConnectionStateEventArgs : EventArgs {
+            public DataConnectionStateEventArgs(int state, int networkType);
+            public int NetworkType { get; }
+            public int State { get; }
+        }
+        public class DisplayInfoEventArgs : EventArgs {
+            public DisplayInfoEventArgs(TelephonyDisplayInfo telephonyDisplayInfo);
+            public TelephonyDisplayInfo TelephonyDisplayInfo { get; }
+        }
+        public class EmergencyNumberListEventArgs : EventArgs {
+            public EmergencyNumberListEventArgs(IDictionary<Integer, IList<EmergencyNumber>> emergencyNumberList);
+            public IDictionary<Integer, IList<EmergencyNumber>> EmergencyNumberList { get; }
+        }
+        public interface IActiveDataSubscriptionIdListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnActiveDataSubscriptionIdChanged(int subId);
+        }
+        public interface IBarringInfoListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnBarringInfoChanged(BarringInfo barringInfo);
+        }
+        public interface ICallDisconnectCauseListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnCallDisconnectCauseChanged(int disconnectCause, int preciseDisconnectCause);
+        }
+        public interface ICallForwardingIndicatorListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnCallForwardingIndicatorChanged(bool cfi);
+        }
+        public interface ICallStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnCallStateChanged(int state);
+        }
+        public interface ICarrierNetworkListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnCarrierNetworkChange(bool active);
+        }
+        public interface ICellInfoListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnCellInfoChanged(IList<CellInfo> cellInfo);
+        }
+        public interface ICellLocationListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnCellLocationChanged(CellLocation location);
+        }
+        public interface IDataActivationStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnDataActivationStateChanged(int state);
+        }
+        public interface IDataActivityListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnDataActivity(int direction);
+        }
+        public interface IDataConnectionStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnDataConnectionStateChanged(int state, int networkType);
+        }
+        public interface IDisplayInfoListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo);
+        }
+        public interface IEmergencyNumberListListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnEmergencyNumberListChanged(IDictionary<Integer, IList<EmergencyNumber>> emergencyNumberList);
+        }
+        public interface IImsCallDisconnectCauseListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnImsCallDisconnectCauseChanged(ImsReasonInfo imsReasonInfo);
+        }
+        public interface IMessageWaitingIndicatorListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnMessageWaitingIndicatorChanged(bool mwi);
+        }
+        public class ImsCallDisconnectCauseEventArgs : EventArgs {
+            public ImsCallDisconnectCauseEventArgs(ImsReasonInfo imsReasonInfo);
+            public ImsReasonInfo ImsReasonInfo { get; }
+        }
+        public interface IPhysicalChannelConfigListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnPhysicalChannelConfigChanged(IList<PhysicalChannelConfig> configs);
+        }
+        public interface IPreciseDataConnectionStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnPreciseDataConnectionStateChanged(PreciseDataConnectionState dataConnectionState);
+        }
+        public interface IRegistrationFailedListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnRegistrationFailed(CellIdentity cellIdentity, string chosenPlmn, int domain, int causeCode, int additionalCauseCode);
+        }
+        public interface IServiceStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnServiceStateChanged(ServiceState serviceState);
+        }
+        public interface ISignalStrengthsListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnSignalStrengthsChanged(SignalStrength signalStrength);
+        }
+        public interface IUserMobileDataStateListener : IDisposable, IJavaObject, IJavaPeerable {
+            void OnUserMobileDataStateChanged(bool enabled);
+        }
+        public class MessageWaitingIndicatorEventArgs : EventArgs {
+            public MessageWaitingIndicatorEventArgs(bool mwi);
+            public bool Mwi { get; }
+        }
+        public class PhysicalChannelConfigEventArgs : EventArgs {
+            public PhysicalChannelConfigEventArgs(IList<PhysicalChannelConfig> configs);
+            public IList<PhysicalChannelConfig> Configs { get; }
+        }
+        public class PreciseDataConnectionStateEventArgs : EventArgs {
+            public PreciseDataConnectionStateEventArgs(PreciseDataConnectionState dataConnectionState);
+            public PreciseDataConnectionState DataConnectionState { get; }
+        }
+        public class RegistrationFailedEventArgs : EventArgs {
+            public RegistrationFailedEventArgs(CellIdentity cellIdentity, string chosenPlmn, int domain, int causeCode, int additionalCauseCode);
+            public int AdditionalCauseCode { get; }
+            public int CauseCode { get; }
+            public CellIdentity CellIdentity { get; }
+            public string ChosenPlmn { get; }
+            public int Domain { get; }
+        }
+        public class ServiceStateEventArgs : EventArgs {
+            public ServiceStateEventArgs(ServiceState serviceState);
+            public ServiceState ServiceState { get; }
+        }
+        public class SignalStrengthsEventArgs : EventArgs {
+            public SignalStrengthsEventArgs(SignalStrength signalStrength);
+            public SignalStrength SignalStrength { get; }
+        }
+        public class UserMobileDataStateEventArgs : EventArgs {
+            public UserMobileDataStateEventArgs(bool enabled);
+            public bool Enabled { get; }
+        }
+    }
     public sealed class TelephonyDisplayInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const OverrideNetworkType OverrideNetworkTypeNrAdvanced = OverrideNetworkType.NrAdvanced;
     }
     public class TelephonyManager : Object {
+        public const CallComposerStatus CallComposerStatusOff = CallComposerStatus.Off;
+        public const CallComposerStatus CallComposerStatusOn = CallComposerStatus.On;
+        public const DataEnabledReason DataEnabledReasonCarrier = DataEnabledReason.Carrier;
+        public const DataEnabledReason DataEnabledReasonPolicy = DataEnabledReason.Policy;
+        public const DataEnabledReason DataEnabledReasonThermal = DataEnabledReason.Thermal;
+        public const DataEnabledReason DataEnabledReasonUser = DataEnabledReason.User;
+        public const EnhancedRoamingIndicator EriFlash = EnhancedRoamingIndicator.Flash;
+        public const EnhancedRoamingIndicator EriOff = EnhancedRoamingIndicator.Off;
+        public const EnhancedRoamingIndicator EriOn = EnhancedRoamingIndicator.On;
+        public const UiccApplicationType ApptypeUnknown = UiccApplicationType.Unknown;
+        public const string ActionCarrierSignalDefaultNetworkAvailable = "android.telephony.action.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE";
+        public const string ActionCarrierSignalPcoValue = "android.telephony.action.CARRIER_SIGNAL_PCO_VALUE";
+        public const string ActionCarrierSignalRedirected = "android.telephony.action.CARRIER_SIGNAL_REDIRECTED";
+        public const string ActionCarrierSignalRequestNetworkFailed = "android.telephony.action.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED";
+        public const string ActionCarrierSignalReset = "android.telephony.action.CARRIER_SIGNAL_RESET";
+        public const string CapabilitySlicingConfigSupported = "CAPABILITY_SLICING_CONFIG_SUPPORTED";
+        public const string ExtraApnProtocol = "android.telephony.extra.APN_PROTOCOL";
+        public const string ExtraApnType = "android.telephony.extra.APN_TYPE";
+        public const string ExtraDataFailCause = "android.telephony.extra.DATA_FAIL_CAUSE";
+        public const string ExtraDefaultNetworkAvailable = "android.telephony.extra.DEFAULT_NETWORK_AVAILABLE";
+        public const string ExtraPcoId = "android.telephony.extra.PCO_ID";
+        public const string ExtraPcoValue = "android.telephony.extra.PCO_VALUE";
+        public const string ExtraRedirectionUrl = "android.telephony.extra.REDIRECTION_URL";
+        public virtual int CallComposerStatus { get; set; }
+        public virtual int CallStateForSubscription { get; }
+        public virtual IList<string> EquivalentHomePlmns { get; }
+        public virtual bool IsDataCapable { get; }
+        public virtual bool IsDataConnectionAllowed { get; }
+        public static long MaximumCallComposerPictureSize { get; }
+        public virtual PhoneAccountHandle PhoneAccountHandle { get; }
+        public virtual void ClearSignalStrengthUpdateRequest(SignalStrengthUpdateRequest request);
+        public virtual void GetNetworkSlicingConfiguration(IExecutor executor, IOutcomeReceiver callback);
+        public virtual bool IsDataEnabledForReason(int reason);
+        public virtual bool IsRadioInterfaceCapabilitySupported(string capability);
+        public virtual void RegisterTelephonyCallback(IExecutor executor, TelephonyCallback callback);
+        public virtual void SetDataEnabledForReason(int reason, bool enabled);
+        public virtual void SetSignalStrengthUpdateRequest(SignalStrengthUpdateRequest request);
+        public virtual void UnregisterTelephonyCallback(TelephonyCallback callback);
+        public virtual void UploadCallComposerPicture(IPath pictureToUpload, string contentType, IExecutor executor, IOutcomeReceiver callback);
+        public virtual void UploadCallComposerPicture(Stream pictureToUpload, string contentType, IExecutor executor, IOutcomeReceiver callback);
+        public class CallComposerException : Exception {
+            public const CallComposerErrorCode ErrorAuthenticationFailed = CallComposerErrorCode.AuthenticationFailed;
+            public const CallComposerErrorCode ErrorFileTooLarge = CallComposerErrorCode.FileTooLarge;
+            public const CallComposerErrorCode ErrorInputClosed = CallComposerErrorCode.InputClosed;
+            public const CallComposerErrorCode ErrorIoException = CallComposerErrorCode.IoException;
+            public const CallComposerErrorCode ErrorNetworkUnavailable = CallComposerErrorCode.NetworkUnavailable;
+            public const CallComposerErrorCode ErrorRemoteEndClosed = CallComposerErrorCode.RemoteEndClosed;
+            public const CallComposerErrorCode ErrorUnknown = CallComposerErrorCode.Unknown;
+            public CallComposerException(int errorCode, IOException? ioException);
+            protected CallComposerException(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual int ErrorCode { get; }
+            public virtual IOException? IOException { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class ModemErrorException : TelephonyManager.NetworkSlicingException {
+            protected ModemErrorException(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class NetworkSlicingException : Exception {
+            protected NetworkSlicingException(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
+        public class TimeoutException : TelephonyManager.NetworkSlicingException {
+            protected TimeoutException(IntPtr javaReference, JniHandleOwnership transfer);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+        }
     }
     public enum UiccApplicationType {
+        Unknown = 0,
     }
 }

Android.Telephony.Data

 namespace Android.Telephony.Data {
     public class ApnSetting : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ApnType TypeBip = ApnType.Bip;
+        public const ApnType TypeVsim = ApnType.Vsim;
     }
     public enum ApnType {
+        Bip = 8192,
+        Vsim = 4096,
     }
+    public sealed class NetworkSliceInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const NetworkSliceServiceType SliceServiceTypeEmbb = NetworkSliceServiceType.Embb;
+        public const NetworkSliceServiceType SliceServiceTypeMiot = NetworkSliceServiceType.Miot;
+        public const NetworkSliceServiceType SliceServiceTypeNone = NetworkSliceServiceType.None;
+        public const NetworkSliceServiceType SliceServiceTypeUrllc = NetworkSliceServiceType.Urllc;
+        public const NetworkSliceStatus SliceStatusAllowed = NetworkSliceStatus.Allowed;
+        public const NetworkSliceStatus SliceStatusConfigured = NetworkSliceStatus.Configured;
+        public const NetworkSliceStatus SliceStatusDefaultConfigured = NetworkSliceStatus.DefaultConfigured;
+        public const NetworkSliceStatus SliceStatusRejectedNotAvailableInPlmn = NetworkSliceStatus.RejectedNotAvailableInPlmn;
+        public const NetworkSliceStatus SliceStatusRejectedNotAvailableInRegisteredArea = NetworkSliceStatus.RejectedNotAvailableInRegisteredArea;
+        public const NetworkSliceStatus SliceStatusUnknown = NetworkSliceStatus.Unknown;
+        public const int SliceDifferentiatorNoSlice = -1;
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int MappedHplmnSliceDifferentiator { get; }
+        public int MappedHplmnSliceServiceType { get; }
+        public int SliceDifferentiator { get; }
+        public int SliceServiceType { get; }
+        public int Status { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public NetworkSliceInfo Build();
+            public NetworkSliceInfo.Builder SetMappedHplmnSliceDifferentiator(int mappedHplmnSliceDifferentiator);
+            public NetworkSliceInfo.Builder SetMappedHplmnSliceServiceType(int mappedHplmnSliceServiceType);
+            public NetworkSliceInfo.Builder SetSliceDifferentiator(int sliceDifferentiator);
+            public NetworkSliceInfo.Builder SetSliceServiceType(int mSliceServiceType);
+            public NetworkSliceInfo.Builder SetStatus(int status);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum NetworkSliceServiceType {
+        Embb = 1,
+        Miot = 3,
+        None = 0,
+        Urllc = 2,
+    }
+    public enum NetworkSliceStatus {
+        Allowed = 2,
+        Configured = 1,
+        DefaultConfigured = 5,
+        RejectedNotAvailableInPlmn = 3,
+        RejectedNotAvailableInRegisteredArea = 4,
+        Unknown = 0,
+    }
+    public sealed class NetworkSlicingConfig : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public NetworkSlicingConfig();
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public IList<NetworkSliceInfo> SliceInfo { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public IList<UrspRule> UrspRules { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class RouteSelectionDescriptor : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const RouteSelectionSessionType SessionTypeIpv4 = RouteSelectionSessionType.Ipv4;
+        public const RouteSelectionSessionType SessionTypeIpv4v6 = RouteSelectionSessionType.Ipv4v6;
+        public const RouteSelectionSessionType SessionTypeIpv6 = RouteSelectionSessionType.Ipv6;
+        public const RouteSelectionSscMode RouteSscMode1 = RouteSelectionSscMode.Mode1;
+        public const RouteSelectionSscMode RouteSscMode2 = RouteSelectionSscMode.Mode2;
+        public const RouteSelectionSscMode RouteSscMode3 = RouteSelectionSscMode.Mode3;
+        public static IParcelableCreator Creator { get; }
+        public IList<string> DataNetworkName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Precedence { get; }
+        public int SessionType { get; }
+        public IList<NetworkSliceInfo> SliceInfo { get; }
+        public int SscMode { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum RouteSelectionSessionType {
+        Ipv4 = 0,
+        Ipv4v6 = 2,
+        Ipv6 = 1,
+    }
+    public enum RouteSelectionSscMode {
+        Mode1 = 1,
+        Mode2 = 2,
+        Mode3 = 3,
+    }
+    public sealed class TrafficDescriptor : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public string? DataNetworkName { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public byte[]? GetOsAppId();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TrafficDescriptor Build();
+            public TrafficDescriptor.Builder SetDataNetworkName(string dnn);
+            public TrafficDescriptor.Builder SetOsAppId(byte[] osAppId);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class UrspRule : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Precedence { get; }
+        public IList<RouteSelectionDescriptor> RouteSelectionDescriptor { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public IList<TrafficDescriptor> TrafficDescriptors { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
 }

Android.Telephony.Euicc

 namespace Android.Telephony.Euicc {
     public sealed class DownloadableSubscription : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public sealed class Builder : Object {
+            public Builder(DownloadableSubscription baseSubscription);
+            public Builder(string encodedActivationCode);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public DownloadableSubscription Build();
+            public DownloadableSubscription.Builder SetConfirmationCode(string value);
+            public DownloadableSubscription.Builder SetEncodedActivationCode(string value);
+        }
     }
 }

Android.Telephony.Ims

 namespace Android.Telephony.Ims {
     public enum ExtraCodeCallRetry {
+        Emergency = 4,
     }
     public class ImsMmTelManager : Object, IDisposable, IJavaObject, IJavaPeerable, IRegistrationManager {
+        public virtual bool IsCrossSimCallingEnabled { get; }
     }
     public class ImsRcsManager : Object {
+        public virtual void GetRegistrationState(IExecutor executor, IConsumer stateCallback);
+        public virtual void GetRegistrationTransportType(IExecutor executor, IConsumer transportTypeCallback);
+        public virtual void RegisterImsRegistrationCallback(IExecutor executor, RegistrationManagerRegistrationCallback c);
+        public virtual void UnregisterImsRegistrationCallback(RegistrationManagerRegistrationCallback c);
     }
     public sealed class ImsReasonInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ExtraCodeCallRetry ExtraCodeCallRetryEmergency = ExtraCodeCallRetry.Emergency;
+        public const ImsReasonInfoCode CodeNetworkCongestion = ImsReasonInfoCode.NetworkCongestion;
     }
     public enum ImsReasonInfoCode {
+        NetworkCongestion = 1624,
     }
+    public sealed class ImsRegistrationAttributes : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const int AttrEpdgOverCellInternet = 1;
+        public int AttributeFlags { get; }
+        public static IParcelableCreator Creator { get; }
+        public ICollection<string> FeatureTags { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int TransportType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum RegistrationAttributes {
+        None = 0,
+    }
     public class RegistrationManagerRegistrationCallback : Object {
+        public virtual void OnRegistered(ImsRegistrationAttributes attributes);
+        public virtual void OnRegistering(ImsRegistrationAttributes attributes);
     }
 }

Android.Telephony.Ims.Feature

 namespace Android.Telephony.Ims.Feature {
     public enum MmTelCapabilityType {
+        CallComposer = 16,
     }
     public class MmTelFeature : Object {
         public class MmTelCapabilities : Object {
+            public const MmTelCapabilityType CapabilityTypeCallComposer = MmTelCapabilityType.CallComposer;
+            public bool IsCapable(int capabilities);
         }
     }
 }

Android.Telephony.Mbms

 namespace Android.Telephony.Mbms {
     public class MbmsErrors : Object {
         public class DownloadErrors : Object {
+            public const int ErrorMalformedServiceAnnouncement = 404;
         }
     }
 }

Android.Text

 namespace Android.Text {
+    public class TextShaper : Object {
+        protected TextShaper(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public static void ShapeText(ICharSequence text, int start, int count, ITextDirectionHeuristic dir, TextPaint paint, TextShaper.IGlyphsConsumer consumer);
+        public static void ShapeText(string text, int start, int count, ITextDirectionHeuristic dir, TextPaint paint, TextShaper.IGlyphsConsumer consumer);
+        public interface IGlyphsConsumer : IDisposable, IJavaObject, IJavaPeerable {
+            void Accept(int start, int count, PositionedGlyphs glyphs, TextPaint paint);
+        }
+    }
 }

Android.Text.Style

 namespace Android.Text.Style {
     public class SuggestionSpan : CharacterStyle, IDisposable, IJavaObject, IJavaPeerable, IParcelable, IParcelableSpan {
+        public const SuggestionSpanFlags FlagGrammarError = SuggestionSpanFlags.GrammarError;
     }
     public enum SuggestionSpanFlags {
+        GrammarError = 8,
     }
 }

Android.Util

 namespace Android.Util {
     public class AtomicFile : Object {
+        public virtual long LastModifiedTime { get; }
     }
-    public sealed class SizeF : Object {
+    public sealed class SizeF : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
     }
     public class SparseArray : Object, ICloneable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual bool ContentEquals(SparseArray other);
+        public virtual int ContentHashCode();
+        public virtual void Set(int key, Object value);
     }
 }

Android.Views

 namespace Android.Views {
+    public sealed class ContentInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const ContentInfoFlags FlagConvertToPlainText = ContentInfoFlags.ConvertToPlainText;
+        public const ContentInfoSource SourceApp = ContentInfoSource.App;
+        public const ContentInfoSource SourceAutofill = ContentInfoSource.Autofill;
+        public const ContentInfoSource SourceClipboard = ContentInfoSource.Clipboard;
+        public const ContentInfoSource SourceDragAndDrop = ContentInfoSource.DragAndDrop;
+        public const ContentInfoSource SourceInputMethod = ContentInfoSource.InputMethod;
+        public const ContentInfoSource SourceProcessText = ContentInfoSource.ProcessText;
+        public ClipData Clip { get; }
+        public static IParcelableCreator Creator { get; }
+        public Bundle? Extras { get; }
+        public int Flags { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public Uri? LinkUri { get; }
+        public int Source { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(ClipData clip, int source);
+            public Builder(ContentInfo other);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ContentInfo Build();
+            public ContentInfo.Builder SetClip(ClipData clip);
+            public ContentInfo.Builder SetExtras(Bundle? extras);
+            public ContentInfo.Builder SetFlags(int flags);
+            public ContentInfo.Builder SetLinkUri(Uri? linkUri);
+            public ContentInfo.Builder SetSource(int source);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum ContentInfoFlags {
+        ConvertToPlainText = 1,
+        None = 0,
+    }
+    public enum ContentInfoSource {
+        App = 0,
+        Autofill = 4,
+        Clipboard = 1,
+        DragAndDrop = 3,
+        InputMethod = 2,
+        ProcessText = 5,
+    }
     public class Display : Object {
+        public virtual DeviceProductInfo DeviceProductInfo { get; }
+        public virtual RoundedCorner GetRoundedCorner(int position);
         public sealed class Mode : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public float[] GetAlternativeRefreshRates();
         }
     }
     public sealed class DisplayCutout : Object {
+        public Path? CutoutPath { get; }
     }
     public sealed class FrameMetrics : Object {
+        public const FrameMetricsId Deadline = FrameMetricsId.Deadline;
+        public const FrameMetricsId GpuDuration = FrameMetricsId.GpuDuration;
     }
     public enum FrameMetricsId {
+        Deadline = 13,
+        GpuDuration = 12,
     }
+    public interface IAttachedSurfaceControl : IDisposable, IJavaObject, IJavaPeerable {
+        bool ApplyTransactionOnDraw(SurfaceControl.Transaction t);
+        SurfaceControl.Transaction? BuildReparentTransaction(SurfaceControl child);
+    }
     public sealed class InputDevice : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const InputSourceType SourceSensor = InputSourceType.Sensor;
+        public BatteryState BatteryState { get; }
+        public LightsManager LightsManager { get; }
+        public SensorManager SensorManager { get; }
+        public VibratorManager VibratorManager { get; }
     }
     public enum InputSourceType {
+        Sensor = 67108864,
     }
+    public interface IOnReceiveContentListener : IDisposable, IJavaObject, IJavaPeerable {
+        ContentInfo? OnReceiveContent(View view, ContentInfo payload);
+    }
+    public interface IScrollCaptureCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnScrollCaptureEnd(IRunnable onReady);
+        void OnScrollCaptureImageRequest(ScrollCaptureSession session, CancellationSignal signal, Rect captureArea, IConsumer onComplete);
+        void OnScrollCaptureSearch(CancellationSignal signal, IConsumer onReady);
+        void OnScrollCaptureStart(ScrollCaptureSession session, CancellationSignal signal, IRunnable onReady);
+    }
     public interface IWindowManager : IDisposable, IJavaObject, IJavaPeerable, IViewManager {
+        bool IsCrossWindowBlurEnabled { get; }
+        void AddCrossWindowBlurEnabledListener(IExecutor executor, IConsumer listener);
+        void AddCrossWindowBlurEnabledListener(IConsumer listener);
+        void RemoveCrossWindowBlurEnabledListener(IConsumer listener);
     }
     public class KeyEvent : InputEvent, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static bool IsMediaSessionKey(int keyCode);
     }
+    public delegate ContentInfo? ReceiveContentHandler(View view, ContentInfo payload);
+    public sealed class RoundedCorner : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const RoundedCornerPosition PositionBottomLeft = RoundedCornerPosition.BottomLeft;
+        public const RoundedCornerPosition PositionBottomRight = RoundedCornerPosition.BottomRight;
+        public const RoundedCornerPosition PositionTopLeft = RoundedCornerPosition.TopLeft;
+        public const RoundedCornerPosition PositionTopRight = RoundedCornerPosition.TopRight;
+        public RoundedCorner(int position, int radius, int centerX, int centerY);
+        public Point Center { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Position { get; }
+        public int Radius { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum RoundedCornerPosition {
+        BottomLeft = 3,
+        BottomRight = 2,
+        TopLeft = 0,
+        TopRight = 1,
+    }
+    public enum ScrollCaptureHint {
+        Auto = 0,
+        Exclude = 1,
+        ExcludeDescendants = 4,
+        Include = 2,
+    }
+    public class ScrollCaptureSession : Object {
+        public ScrollCaptureSession(Surface surface, Rect scrollBounds, Point positionInWindow);
+        protected ScrollCaptureSession(IntPtr javaReference, JniHandleOwnership transfer);
+        public override JniPeerMembers JniPeerMembers { get; }
+        public virtual Point PositionInWindow { get; }
+        public virtual Rect ScrollBounds { get; }
+        public virtual Surface Surface { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+    }
+    public sealed class ScrollCaptureTarget : Object {
+        public ScrollCaptureTarget(View scrollTarget, Rect localVisibleRect, Point positionInWindow, IScrollCaptureCallback callback);
+        public IScrollCaptureCallback Callback { get; }
+        public View ContainingView { get; }
+        public int Hint { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public Rect LocalVisibleRect { get; }
+        public Point PositionInWindow { get; }
+        public Rect? ScrollBounds { get; set; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void UpdatePositionInWindow();
+    }
     public class SoundEffectConstants : Object {
+        public const SoundEffects NavigationRepeatDown = SoundEffects.NavigationRepeatDown;
+        public const SoundEffects NavigationRepeatLeft = SoundEffects.NavigationRepeatLeft;
+        public const SoundEffects NavigationRepeatRight = SoundEffects.NavigationRepeatRight;
+        public const SoundEffects NavigationRepeatUp = SoundEffects.NavigationRepeatUp;
+        public static SoundEffects GetConstantForFocusDirection(FocusSearchDirection direction, bool repeating);
     }
     public enum SoundEffects {
+        NavigationRepeatDown = 8,
+        NavigationRepeatLeft = 5,
+        NavigationRepeatRight = 7,
+        NavigationRepeatUp = 6,
     }
     public class Surface : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const SurfaceChangeFrameRate ChangeFrameRateAlways = SurfaceChangeFrameRate.Always;
+        public const SurfaceChangeFrameRate ChangeFrameRateOnlyIfSeamless = SurfaceChangeFrameRate.OnlyIfSeamless;
+        public virtual void SetFrameRate(float frameRate, int compatibility, int changeFrameRateStrategy);
     }
+    public enum SurfaceChangeFrameRate {
+        Always = 1,
+        OnlyIfSeamless = 0,
+    }
     public sealed class SurfaceControl : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
         public class Transaction : Object, ICloseable, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public virtual SurfaceControl.Transaction SetFrameRate(SurfaceControl sc, float frameRate, int compatibility, int changeFrameRateStrategy);
         }
     }
     public class SurfaceControlViewHost : Object {
         public sealed class SurfacePackage : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public SurfacePackage(SurfaceControlViewHost.SurfacePackage other);
         }
     }
     public class SurfaceView : View {
-        public virtual bool GatherTransparentRegion(Region region);
+        public override bool GatherTransparentRegion(Region region);
     }
     public class View : Object, Drawable.ICallback, IAccessibilityEventSource, IDisposable, IJavaObject, IJavaPeerable, KeyEvent.ICallback {
+        public const ScrollCaptureHint ScrollCaptureHintAuto = ScrollCaptureHint.Auto;
+        public const ScrollCaptureHint ScrollCaptureHintExclude = ScrollCaptureHint.Exclude;
+        public const ScrollCaptureHint ScrollCaptureHintExcludeDescendants = ScrollCaptureHint.ExcludeDescendants;
+        public const ScrollCaptureHint ScrollCaptureHintInclude = ScrollCaptureHint.Include;
+        public virtual IAttachedSurfaceControl RootSurfaceControl { get; }
+        public virtual int ScrollCaptureHint { get; set; }
+        public virtual ViewTranslationResponse ViewTranslationResponse { get; }
+        public virtual void ClearViewTranslationCallback();
+        public virtual void DispatchCreateViewTranslationRequest(IDictionary<AutofillId, long[]> viewIds, int[] supportedFormats, TranslationCapability capability, IList<ViewTranslationRequest> requests);
+        public virtual void DispatchScrollCaptureSearch(Rect localVisibleRect, Point windowOffset, IConsumer targets);
+        public virtual bool GatherTransparentRegion(Region region);
+        public virtual void GenerateDisplayHash(string hashAlgorithm, Rect? bounds, IExecutor executor, IDisplayHashResultCallback callback);
+        public virtual string[]? GetReceiveContentMimeTypes();
+        public virtual void OnCreateViewTranslationRequest(int[] supportedFormats, IConsumer requestsCollector);
+        public virtual void OnCreateVirtualViewTranslationRequests(long[] virtualIds, int[] supportedFormats, IConsumer requestsCollector);
+        public virtual ContentInfo? OnReceiveContent(ContentInfo payload);
+        public virtual void OnScrollCaptureSearch(Rect localVisibleRect, Point windowOffset, IConsumer targets);
+        public virtual void OnViewTranslationResponse(ViewTranslationResponse response);
+        public virtual void OnVirtualViewTranslationResponses(LongSparseArray response);
+        public virtual ContentInfo? PerformReceiveContent(ContentInfo payload);
+        public virtual void SetAllowClickWhenDisabled(bool clickableWhenDisabled);
+        public virtual void SetOnReceiveContentListener(string[]? mimeTypes, IOnReceiveContentListener listener);
+        public virtual void SetRenderEffect(RenderEffect renderEffect);
+        public void SetScrollCaptureCallback(IScrollCaptureCallback callback);
+        public virtual void SetViewTranslationCallback(IViewTranslationCallback callback);
     }
     public class ViewConfiguration : Object {
+        public static int MultiPressTimeout { get; }
     }
     public abstract class ViewGroup : View, IDisposable, IJavaObject, IJavaPeerable, IViewManager, IViewParent {
-        public virtual bool GatherTransparentRegion(Region region);
+        public override bool GatherTransparentRegion(Region region);
     }
     public abstract class ViewStructure : Object {
+        public virtual void SetReceiveContentMimeTypes(string[]? mimeTypes);
     }
     public abstract class Window : Object {
+        public virtual IAttachedSurfaceControl RootSurfaceControl { get; }
+        public virtual void RegisterScrollCaptureCallback(IScrollCaptureCallback callback);
+        public virtual void SetBackgroundBlurRadius(int blurRadius);
+        public void SetHideOverlayWindows(bool hide);
+        public virtual void UnregisterScrollCaptureCallback(IScrollCaptureCallback callback);
     }
     public sealed class WindowInsets : Object {
+        public Rect? PrivacyIndicatorBounds { get; }
+        public RoundedCorner? GetRoundedCorner(int position);
         public sealed class Builder : Object {
+            public WindowInsets.Builder SetPrivacyIndicatorBounds(Rect? bounds);
+            public WindowInsets.Builder SetRoundedCorner(int position, RoundedCorner? roundedCorner);
         }
     }
     public enum WindowInsetsControllerBehavior {
+        Default = 1,
     }
     public class WindowManagerLayoutParams : ViewGroup.LayoutParams, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual int BlurBehindRadius { get; set; }
     }
 }

Android.Views.Accessibility

 namespace Android.Views.Accessibility {
     public sealed class AccessibilityManager : Object {
+        public int AccessibilityFocusColor { get; }
+        public int AccessibilityFocusStrokeWidth { get; }
     }
     public class AccessibilityNodeInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const int ExtraDataTextCharacterLocationArgMaxLength = 20000;
     }
 }

Android.Views.Autofill

 namespace Android.Views.Autofill {
     public sealed class AutofillManager : Object {
+        public const string ExtraAuthenticationResultEphemeralDataset = "android.view.autofill.extra.AUTHENTICATION_RESULT_EPHEMERAL_DATASET";
+        public const string ExtraInlineSuggestionsRequest = "android.view.autofill.extra.INLINE_SUGGESTIONS_REQUEST";
     }
 }

Android.Views.DisplayHash

+namespace Android.Views.DisplayHash {
+    public sealed class DisplayHash : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum DisplayHashErrorCode {
+        InvalidBounds = -2,
+        InvalidHashAlgorithm = -5,
+        MissingWindow = -3,
+        NotVisibleOnScreen = -4,
+        TooManyRequests = -6,
+        Unknown = -1,
+    }
+    public sealed class DisplayHashManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<string> SupportedHashAlgorithms { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public VerifiedDisplayHash? VerifyDisplayHash(DisplayHash displayHash);
+    }
+    public abstract class DisplayHashResultCallback : Object {
+        public const DisplayHashErrorCode DisplayHashErrorInvalidBounds = DisplayHashErrorCode.InvalidBounds;
+        public const DisplayHashErrorCode DisplayHashErrorInvalidHashAlgorithm = DisplayHashErrorCode.InvalidHashAlgorithm;
+        public const DisplayHashErrorCode DisplayHashErrorMissingWindow = DisplayHashErrorCode.MissingWindow;
+        public const DisplayHashErrorCode DisplayHashErrorNotVisibleOnScreen = DisplayHashErrorCode.NotVisibleOnScreen;
+        public const DisplayHashErrorCode DisplayHashErrorTooManyRequests = DisplayHashErrorCode.TooManyRequests;
+        public const DisplayHashErrorCode DisplayHashErrorUnknown = DisplayHashErrorCode.Unknown;
+    }
+    public interface IDisplayHashResultCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnDisplayHashError(int errorCode);
+        void OnDisplayHashResult(DisplayHash displayHash);
+    }
+    public sealed class VerifiedDisplayHash : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public VerifiedDisplayHash(long timeMillis, Rect boundsInWindow, string hashAlgorithm, byte[] imageHash);
+        public Rect BoundsInWindow { get; }
+        public static IParcelableCreator Creator { get; }
+        public string HashAlgorithm { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public long TimeMillis { get; }
+        public int DescribeContents();
+        public byte[] GetImageHash();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+}

Android.Views.InputMethods

 namespace Android.Views.InputMethods {
     public class BaseInputConnection : Object, IDisposable, IInputConnection, IJavaObject, IJavaPeerable {
+        public virtual SurroundingText GetSurroundingText(int beforeLength, int afterLength, int flags);
     }
     public class EditorInfo : Object, IDisposable, IInputType, IJavaObject, IJavaPeerable, IParcelable {
+        public virtual SurroundingText GetInitialSurroundingText(int beforeLength, int afterLength, int flags);
     }
     public interface IInputConnection : IDisposable, IJavaObject, IJavaPeerable {
+        SurroundingText GetSurroundingText(int beforeLength, int afterLength, int flags);
+        bool PerformSpellCheck();
+        bool SetImeConsumesInput(bool imeConsumesInput);
     }
     public sealed class InlineSuggestionsRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public InlinePresentationSpec? InlineTooltipPresentationSpec { get; }
         public sealed class Builder : Object {
+            public InlineSuggestionsRequest.Builder SetInlineTooltipPresentationSpec(InlinePresentationSpec value);
         }
     }
     public class InputConnectionWrapper : Object, IDisposable, IInputConnection, IJavaObject, IJavaPeerable {
+        public virtual SurroundingText GetSurroundingText(int beforeLength, int afterLength, int flags);
+        public virtual bool PerformSpellCheck();
+        public virtual bool SetImeConsumesInput(bool imeConsumesInput);
     }
     public sealed class InputMethodInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public int ConfigChanges { get; }
+        public bool ShouldShowInInputMethodPicker();
+        public bool SuppressesSpellChecker();
     }
     public sealed class InputMethodManager : Object {
+        public bool IsInputMethodSuppressingSpellChecker { get; }
     }
+    public sealed class SurroundingText : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public SurroundingText(ICharSequence text, int selectionStart, int selectionEnd, int offset);
+        public SurroundingText(string text, int selectionStart, int selectionEnd, int offset);
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int Offset { get; }
+        public int SelectionEnd { get; }
+        public int SelectionStart { get; }
+        public string? Text { get; }
+        public ICharSequence TextFormatted { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel @out, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
 }

Android.Views.TextClassifiers

 namespace Android.Views.TextClassifiers {
     public interface ITextClassifier : IDisposable, IJavaObject, IJavaPeerable {
+        public const string WidgetTypeClipboard = "clipboard";
+        ITextClassifier? NoOp { get; }
     }
     public abstract class TextClassifier : Object {
+        public const string WidgetTypeClipboard = "clipboard";
     }
     public sealed class TextSelection : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public TextClassification? TextClassification { get; }
         public sealed class Builder : Object {
+            public TextSelection.Builder SetTextClassification(TextClassification? textClassification);
         }
         public sealed class Request : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public bool ShouldIncludeTextClassification();
             public sealed class Builder : Object {
+                public TextSelection.Request.Builder SetIncludeTextClassification(bool includeTextClassification);
             }
         }
     }
 }

Android.Views.TextService

 namespace Android.Views.TextService {
     public class SpellCheckerSession : Object {
+        public class SpellCheckerSessionParams : Object {
+            protected SpellCheckerSessionParams(IntPtr javaReference, JniHandleOwnership transfer);
+            public virtual Bundle Extras { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            public virtual Locale? Locale { get; }
+            public virtual int SupportedAttributes { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public virtual bool ShouldReferToSpellCheckerLanguageSettings();
+            public sealed class Builder : Object {
+                public Builder();
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public SpellCheckerSession.SpellCheckerSessionParams Build();
+                public SpellCheckerSession.SpellCheckerSessionParams.Builder SetExtras(Bundle extras);
+                public SpellCheckerSession.SpellCheckerSessionParams.Builder SetLocale(Locale? locale);
+                public SpellCheckerSession.SpellCheckerSessionParams.Builder SetShouldReferToSpellCheckerLanguageSettings(bool shouldReferToSpellCheckerLanguageSettings);
+                public SpellCheckerSession.SpellCheckerSessionParams.Builder SetSupportedAttributes(int supportedAttributes);
+            }
+        }
     }
     public enum SuggestionsAttributes {
+        DontShowUiForSuggestions = 16,
+        LooksLikeGrammarError = 8,
     }
     public sealed class SuggestionsInfo : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const SuggestionsAttributes ResultAttrDontShowUiForSuggestions = SuggestionsAttributes.DontShowUiForSuggestions;
+        public const SuggestionsAttributes ResultAttrLooksLikeGrammarError = SuggestionsAttributes.LooksLikeGrammarError;
     }
     public sealed class TextServicesManager : Object {
+        public SpellCheckerInfo? CurrentSpellCheckerInfo { get; }
+        public IList<SpellCheckerInfo> EnabledSpellCheckerInfos { get; }
+        public bool IsSpellCheckerEnabled { get; }
-        public SpellCheckerSession? NewSpellCheckerSession(Bundle? bundle, Locale? locale, SpellCheckerSession.ISpellCheckerSessionListener? listener, bool referToSpellCheckerLanguageSettings);
+        public SpellCheckerSession? NewSpellCheckerSession(Bundle? bundle, Locale? locale, SpellCheckerSession.ISpellCheckerSessionListener listener, bool referToSpellCheckerLanguageSettings);
+        public SpellCheckerSession? NewSpellCheckerSession(SpellCheckerSession.SpellCheckerSessionParams @params, IExecutor executor, SpellCheckerSession.ISpellCheckerSessionListener listener);
     }
 }

Android.Views.Translation

+namespace Android.Views.Translation {
+    public interface IUiTranslationStateCallback : IDisposable, IJavaObject, IJavaPeerable {
+        void OnFinished();
+        void OnPaused();
+        void OnResumed(ULocale sourceLocale, ULocale targetLocale);
+        void OnStarted(ULocale sourceLocale, ULocale targetLocale);
+    }
+    public interface IViewTranslationCallback : IDisposable, IJavaObject, IJavaPeerable {
+        bool OnClearTranslation(View view);
+        bool OnHideTranslation(View view);
+        bool OnShowTranslation(View view);
+    }
+    public sealed class TranslationCapability : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TranslationState StateAvailableToDownload = TranslationState.AvailableToDownload;
+        public const TranslationState StateDownloading = TranslationState.Downloading;
+        public const TranslationState StateNotAvailable = TranslationState.NotAvailable;
+        public const TranslationState StateOnDevice = TranslationState.OnDevice;
+        public static IParcelableCreator Creator { get; }
+        public bool IsUiTranslationEnabled { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public TranslationSpec SourceSpec { get; }
+        public int State { get; }
+        public int SupportedTranslationFlags { get; }
+        public TranslationSpec TargetSpec { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class TranslationContext : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TranslationContextFlags FlagDefinitions = TranslationContextFlags.Definitions;
+        public const TranslationContextFlags FlagLowLatency = TranslationContextFlags.LowLatency;
+        public const TranslationContextFlags FlagTransliteration = TranslationContextFlags.Transliteration;
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public TranslationSpec SourceSpec { get; }
+        public TranslationSpec TargetSpec { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int TranslationFlags { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(TranslationSpec sourceSpec, TranslationSpec targetSpec);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TranslationContext Build();
+            public TranslationContext.Builder SetTranslationFlags(int value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum TranslationContextFlags {
+        Definitions = 4,
+        LowLatency = 1,
+        Transliteration = 2,
+    }
+    public enum TranslationDataFormat {
+        Text = 1,
+    }
+    public sealed class TranslationManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        public PendingIntent? OnDeviceTranslationSettingsActivityIntent { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void AddOnDeviceTranslationCapabilityUpdateListener(IExecutor executor, IConsumer capabilityListener);
+        public void CreateOnDeviceTranslator(TranslationContext translationContext, IExecutor executor, IConsumer callback);
+        public ICollection<TranslationCapability> GetOnDeviceTranslationCapabilities(int sourceFormat, int targetFormat);
+        public void RemoveOnDeviceTranslationCapabilityUpdateListener(IConsumer capabilityListener);
+    }
+    public sealed class TranslationRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TranslationRequestFlags FlagDictionaryResult = TranslationRequestFlags.DictionaryResult;
+        public const TranslationRequestFlags FlagPartialResponses = TranslationRequestFlags.PartialResponses;
+        public const TranslationRequestFlags FlagTranslationResult = TranslationRequestFlags.TranslationResult;
+        public const TranslationRequestFlags FlagTransliterationResult = TranslationRequestFlags.TransliterationResult;
+        public static IParcelableCreator Creator { get; }
+        public int Flags { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public IList<TranslationRequestValue> TranslationRequestValues { get; }
+        public IList<ViewTranslationRequest> ViewTranslationRequests { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder();
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TranslationRequest Build();
+            public TranslationRequest.Builder SetFlags(int value);
+            public TranslationRequest.Builder SetTranslationRequestValues(IList<TranslationRequestValue> value);
+            public TranslationRequest.Builder SetViewTranslationRequests(IList<ViewTranslationRequest> value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum TranslationRequestFlags {
+        DictionaryResult = 2,
+        PartialResponses = 8,
+        TranslationResult = 1,
+        TransliterationResult = 4,
+    }
+    public sealed class TranslationRequestValue : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public string? Text { get; }
+        public ICharSequence? TextFormatted { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public static TranslationRequestValue ForText(ICharSequence text);
+        public static TranslationRequestValue ForText(string text);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class TranslationResponse : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TranslationResponseStatus TranslationStatusContextUnsupported = TranslationResponseStatus.ContextUnsupported;
+        public const TranslationResponseStatus TranslationStatusSuccess = TranslationResponseStatus.Success;
+        public const TranslationResponseStatus TranslationStatusUnknownError = TranslationResponseStatus.UnknownError;
+        public static IParcelableCreator Creator { get; }
+        public bool IsFinalResponse { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public SparseArray TranslationResponseValues { get; }
+        public int TranslationStatus { get; }
+        public SparseArray ViewTranslationResponses { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(int translationStatus);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TranslationResponse Build();
+            public TranslationResponse.Builder SetFinalResponse(bool value);
+            public TranslationResponse.Builder SetTranslationResponseValue(int index, TranslationResponseValue value);
+            public TranslationResponse.Builder SetTranslationResponseValues(SparseArray value);
+            public TranslationResponse.Builder SetViewTranslationResponse(int index, ViewTranslationResponse response);
+            public TranslationResponse.Builder SetViewTranslationResponses(SparseArray value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum TranslationResponseStatus {
+        ContextUnsupported = 2,
+        Success = 0,
+        UnknownError = 1,
+    }
+    public sealed class TranslationResponseValue : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TranslationResponseValueStatus StatusError = TranslationResponseValueStatus.Error;
+        public const TranslationResponseValueStatus StatusSuccess = TranslationResponseValueStatus.Success;
+        public const string ExtraDefinitions = "android.view.translation.extra.DEFINITIONS";
+        public static IParcelableCreator Creator { get; }
+        public Bundle Extras { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public int StatusCode { get; }
+        public string? Text { get; }
+        public ICharSequence? TextFormatted { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public string? Transliteration { get; }
+        public ICharSequence? TransliterationFormatted { get; }
+        public int DescribeContents();
+        public static TranslationResponseValue ForError();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(int statusCode);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public TranslationResponseValue Build();
+            public TranslationResponseValue.Builder SetExtras(Bundle value);
+            public TranslationResponseValue.Builder SetText(ICharSequence value);
+            public TranslationResponseValue.Builder SetText(string value);
+            public TranslationResponseValue.Builder SetTransliteration(ICharSequence value);
+            public TranslationResponseValue.Builder SetTransliteration(string value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum TranslationResponseValueStatus {
+        Error = 1,
+        Success = 0,
+    }
+    public sealed class TranslationSpec : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const TranslationDataFormat DataFormatText = TranslationDataFormat.Text;
+        public TranslationSpec(ULocale locale, int dataFormat);
+        public static IParcelableCreator Creator { get; }
+        public int DataFormat { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ULocale Locale { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public enum TranslationState {
+        AvailableToDownload = 1,
+        Downloading = 2,
+        NotAvailable = 4,
+        OnDevice = 3,
+    }
+    public class Translator : Object {
+        protected Translator(IntPtr javaReference, JniHandleOwnership transfer);
+        public virtual bool IsDestroyed { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public virtual void Destroy();
+        public virtual void Translate(TranslationRequest request, CancellationSignal? cancellationSignal, IExecutor executor, IConsumer callback);
+    }
+    public sealed class UiTranslationManager : Object {
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void RegisterUiTranslationStateCallback(IExecutor executor, IUiTranslationStateCallback callback);
+        public void UnregisterUiTranslationStateCallback(IUiTranslationStateCallback callback);
+    }
+    public sealed class ViewTranslationRequest : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public const string IdText = "android:text";
+        public AutofillId AutofillId { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<string> Keys { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public TranslationRequestValue GetValue(string key);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(AutofillId autofillId);
+            public Builder(AutofillId autofillId, long virtualChildId);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ViewTranslationRequest Build();
+            public ViewTranslationRequest.Builder SetValue(string key, TranslationRequestValue value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+    public sealed class ViewTranslationResponse : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+        public AutofillId AutofillId { get; }
+        public static IParcelableCreator Creator { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        public ICollection<string> Keys { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public int DescribeContents();
+        public TranslationResponseValue GetValue(string key);
+        public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+        public sealed class Builder : Object {
+            public Builder(AutofillId autofillId);
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public ViewTranslationResponse Build();
+            public ViewTranslationResponse.Builder? SetValue(string? key, TranslationResponseValue? value);
+        }
+        public static class InterfaceConsts {
+            public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+            public const int ContentsFileDescriptor = 1;
+        }
+    }
+}

Android.Widget

 namespace Android.Widget {
     public class AnalogClock : View {
-        public AnalogClock(Context? context);
+        public AnalogClock(Context context);
-        public AnalogClock(Context? context, IAttributeSet? attrs);
+        public AnalogClock(Context context, IAttributeSet attrs);
-        public AnalogClock(Context? context, IAttributeSet? attrs, int defStyleAttr);
+        public AnalogClock(Context context, IAttributeSet attrs, int defStyleAttr);
-        public AnalogClock(Context? context, IAttributeSet? attrs, int defStyleAttr, int defStyleRes);
+        public AnalogClock(Context context, IAttributeSet attrs, int defStyleAttr, int defStyleRes);
+        public virtual BlendMode DialTintBlendMode { get; set; }
+        public virtual ColorStateList DialTintList { get; set; }
+        public virtual BlendMode HourHandTintBlendMode { get; set; }
+        public virtual ColorStateList HourHandTintList { get; set; }
+        public virtual BlendMode MinuteHandTintBlendMode { get; set; }
+        public virtual ColorStateList MinuteHandTintList { get; set; }
+        public virtual BlendMode SecondHandTintBlendMode { get; set; }
+        public virtual ColorStateList SecondHandTintList { get; set; }
+        public virtual string TimeZone { get; set; }
+        public virtual void SetDial(Icon icon);
+        public virtual void SetHourHand(Icon icon);
+        public virtual void SetMinuteHand(Icon icon);
+        public virtual void SetSecondHand(Icon icon);
     }
     public abstract class CompoundButton : Button, ICheckable, IDisposable, IJavaObject, IJavaPeerable {
+        public virtual void SetButtonIcon(Icon icon);
     }
     public class EdgeEffect : Object {
+        public EdgeEffect(Context context, IAttributeSet? attrs);
+        public virtual float Distance { get; }
+        public virtual float OnPullDistance(float deltaDistance, float displacement);
     }
     public class RemoteViews : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable, LayoutInflater.IFilter {
+        public const RemoteViewsMargin MarginBottom = RemoteViewsMargin.Bottom;
+        public const RemoteViewsMargin MarginEnd = RemoteViewsMargin.End;
+        public const RemoteViewsMargin MarginLeft = RemoteViewsMargin.Left;
+        public const RemoteViewsMargin MarginRight = RemoteViewsMargin.Right;
+        public const RemoteViewsMargin MarginStart = RemoteViewsMargin.Start;
+        public const RemoteViewsMargin MarginTop = RemoteViewsMargin.Top;
+        public const string ExtraChecked = "android.widget.extra.CHECKED";
+        public RemoteViews(IDictionary<SizeF, RemoteViews> remoteViews);
+        public RemoteViews(string packageName, int layoutId, int viewId);
+        public virtual int ViewId { get; }
+        public virtual void AddStableView(int viewId, RemoteViews nestedView, int stableId);
+        public virtual void SetBlendMode(int viewId, string methodName, BlendMode? value);
+        public virtual void SetCharSequence(int viewId, string methodName, int stringResource);
+        public virtual void SetCharSequenceAttr(int viewId, string methodName, int stringAttribute);
+        public virtual void SetColor(int viewId, string methodName, int colorResource);
+        public virtual void SetColorAttr(int viewId, string methodName, int colorAttribute);
+        public virtual void SetColorInt(int viewId, string methodName, int notNight, int night);
+        public virtual void SetColorStateList(int viewId, string methodName, ColorStateList? value);
+        public virtual void SetColorStateList(int viewId, string methodName, ColorStateList notNight, ColorStateList night);
+        public virtual void SetColorStateList(int viewId, string methodName, int colorResource);
+        public virtual void SetColorStateListAttr(int viewId, string methodName, int colorAttr);
+        public virtual void SetCompoundButtonChecked(int viewId, bool @checked);
+        public virtual void SetFloatDimen(int viewId, string methodName, int dimenResource);
+        public virtual void SetFloatDimen(int viewId, string methodName, float value, int unit);
+        public virtual void SetFloatDimenAttr(int viewId, string methodName, int dimenAttr);
+        public virtual void SetIcon(int viewId, string methodName, Icon notNight, Icon night);
+        public virtual void SetIntDimen(int viewId, string methodName, int dimenResource);
+        public virtual void SetIntDimen(int viewId, string methodName, float value, int unit);
+        public virtual void SetIntDimenAttr(int viewId, string methodName, int dimenAttr);
+        public virtual void SetOnCheckedChangeResponse(int viewId, RemoteViews.RemoteResponse response);
+        public virtual void SetRadioGroupChecked(int viewId, int checkedId);
+        public virtual void SetRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items);
+        public virtual void SetViewLayoutHeight(int viewId, float height, int units);
+        public virtual void SetViewLayoutHeightAttr(int viewId, int heightAttr);
+        public virtual void SetViewLayoutHeightDimen(int viewId, int heightDimen);
+        public virtual void SetViewLayoutMargin(int viewId, int type, float value, int units);
+        public virtual void SetViewLayoutMarginAttr(int viewId, int type, int attr);
+        public virtual void SetViewLayoutMarginDimen(int viewId, int type, int dimen);
+        public virtual void SetViewLayoutWidth(int viewId, float width, int units);
+        public virtual void SetViewLayoutWidthAttr(int viewId, int widthAttr);
+        public virtual void SetViewLayoutWidthDimen(int viewId, int widthDimen);
+        public virtual void SetViewOutlinePreferredRadius(int viewId, float radius, int units);
+        public virtual void SetViewOutlinePreferredRadiusAttr(int viewId, int attrId);
+        public virtual void SetViewOutlinePreferredRadiusDimen(int viewId, int resId);
+        public sealed class RemoteCollectionItems : Object, IDisposable, IJavaObject, IJavaPeerable, IParcelable {
+            public static IParcelableCreator Creator { get; }
+            public bool HasStableIds { get; }
+            public int ItemCount { get; }
+            public override JniPeerMembers JniPeerMembers { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public int ViewTypeCount { get; }
+            public int DescribeContents();
+            public long GetItemId(int position);
+            public RemoteViews GetItemView(int position);
+            public void WriteToParcel(Parcel dest, ParcelableWriteFlags flags);
+            public sealed class Builder : Object {
+                public Builder();
+                public override JniPeerMembers JniPeerMembers { get; }
+                protected override IntPtr ThresholdClass { get; }
+                protected override Type ThresholdType { get; }
+                public RemoteViews.RemoteCollectionItems.Builder AddItem(long id, RemoteViews view);
+                public RemoteViews.RemoteCollectionItems Build();
+                public RemoteViews.RemoteCollectionItems.Builder SetHasStableIds(bool hasStableIds);
+                public RemoteViews.RemoteCollectionItems.Builder SetViewTypeCount(int viewTypeCount);
+            }
+            public static class InterfaceConsts {
+                public const ParcelableWriteFlags ParcelableWriteReturnValue = ParcelableWriteFlags.ReturnValue;
+                public const int ContentsFileDescriptor = 1;
+            }
+        }
+        public sealed class RemoteViewOutlineProvider : ViewOutlineProvider {
+            public RemoteViewOutlineProvider(float radius);
+            public override JniPeerMembers JniPeerMembers { get; }
+            public float Radius { get; }
+            protected override IntPtr ThresholdClass { get; }
+            protected override Type ThresholdType { get; }
+            public override void GetOutline(View view, Outline outline);
+        }
     }
+    public enum RemoteViewsMargin {
+        Bottom = 3,
+        End = 5,
+        Left = 0,
+        Right = 2,
+        Start = 4,
+        Top = 1,
+    }
     public class Switch : CompoundButton {
+        public virtual void SetThumbIcon(Icon icon);
+        public virtual void SetTrackIcon(Icon icon);
     }
 }

Android.Window

+namespace Android.Window {
+    public interface ISplashScreen : IDisposable, IJavaObject, IJavaPeerable {
+        void ClearOnExitAnimationListener();
+        void SetOnExitAnimationListener(ISplashScreenOnExitAnimationListener listener);
+        void SetSplashScreenTheme(int themeId);
+    }
+    public interface ISplashScreenOnExitAnimationListener : IDisposable, IJavaObject, IJavaPeerable {
+        void OnSplashScreenExit(SplashScreenView view);
+    }
+    public class SplashScreenOnExitAnimationEventArgs : EventArgs {
+        public SplashScreenOnExitAnimationEventArgs(SplashScreenView view);
+        public SplashScreenView View { get; }
+    }
+    public sealed class SplashScreenView : FrameLayout {
+        public View? IconView { get; }
+        public override JniPeerMembers JniPeerMembers { get; }
+        protected override IntPtr ThresholdClass { get; }
+        protected override Type ThresholdType { get; }
+        public void Remove();
+    }
+}

Java.IO

 namespace Java.IO {
     public interface IObjectStreamConstants {
+        SerializablePermission SubclassImplementationPermission { get; }
+        SerializablePermission SubstitutionPermission { get; }
     }
 }

Java.Lang

 namespace Java.Lang {
     public sealed class Byte : Number, IComparable, IConvertible, IDisposable, IJavaObject, IJavaPeerable {
+        public static int CompareUnsigned(sbyte x, sbyte y);
     }
     public sealed class Class : Object, IAnnotatedElement, IDisposable, IGenericDeclaration, IJavaObject, IJavaPeerable, ISerializable, IType {
+        public string PackageName { get; }
     }
     public class DeprecatedAttribute : Attribute {
+        public bool ForRemoval { get; set; }
+        public string Since { get; set; }
     }
     public interface IDeprecated : IAnnotation, IDisposable, IJavaObject, IJavaPeerable {
+        bool ForRemoval();
+        string? Since();
     }
     public sealed class Math : Object {
+        public static long FloorDiv(long x, int y);
+        public static int FloorMod(long x, int y);
+        public static long MultiplyExact(long x, int y);
+        public static long MultiplyFull(int x, int y);
+        public static long MultiplyHigh(long x, long y);
     }
     public sealed class Short : Number, IComparable, IDisposable, IJavaObject, IJavaPeerable {
+        public static int CompareUnsigned(short x, short y);
     }
     public sealed class StrictMath : Object {
+        public static long FloorDiv(long x, int y);
+        public static int FloorMod(long x, int y);
+        public static long MultiplyExact(long x, int y);
+        public static long MultiplyFull(int x, int y);
+        public static long MultiplyHigh(long x, long y);
     }
 }

Java.Lang.Annotation

 namespace Java.Lang.Annotation {
     public sealed class ElementType : Enum {
+        public static ElementType Module { get; }
     }
 }

Java.Math

 namespace Java.Math {
     public class BigDecimal : Number, IComparable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
-        public static BigDecimal ValueOf(long unscaledVal);
+        public static BigDecimal ValueOf(long val);
     }
     public class BigInteger : Number, IComparable, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
-        public BigInteger(byte[]? value);
+        public BigInteger(byte[]? val);
-        public BigInteger(int numBits, Random random);
+        public BigInteger(int numBits, Random rnd);
-        public BigInteger(int bitLength, int certainty, Random random);
+        public BigInteger(int bitLength, int certainty, Random rnd);
-        public BigInteger(string value);
+        public BigInteger(string val);
-        public BigInteger(string value, int radix);
+        public BigInteger(string val, int radix);
-        public virtual BigInteger Add(BigInteger value);
+        public virtual BigInteger Add(BigInteger val);
-        public virtual BigInteger And(BigInteger value);
+        public virtual BigInteger And(BigInteger val);
-        public virtual BigInteger AndNot(BigInteger value);
+        public virtual BigInteger AndNot(BigInteger val);
+        public virtual sbyte ByteValueExact();
-        public virtual int CompareTo(BigInteger value);
+        public virtual int CompareTo(BigInteger val);
-        public virtual BigInteger Divide(BigInteger divisor);
+        public virtual BigInteger Divide(BigInteger val);
-        public virtual BigInteger[] DivideAndRemainder(BigInteger divisor);
+        public virtual BigInteger[] DivideAndRemainder(BigInteger val);
-        public virtual BigInteger Gcd(BigInteger value);
+        public virtual BigInteger Gcd(BigInteger val);
+        public virtual int IntValueExact();
+        public virtual long LongValueExact();
-        public virtual BigInteger Max(BigInteger value);
+        public virtual BigInteger Max(BigInteger val);
-        public virtual BigInteger Min(BigInteger value);
+        public virtual BigInteger Min(BigInteger val);
-        public virtual BigInteger ModPow(BigInteger exponent, BigInteger modulus);
+        public virtual BigInteger ModPow(BigInteger exponent, BigInteger m);
-        public virtual BigInteger Multiply(BigInteger value);
+        public virtual BigInteger Multiply(BigInteger val);
-        public virtual BigInteger Or(BigInteger value);
+        public virtual BigInteger Or(BigInteger val);
-        public virtual BigInteger Pow(int exp);
+        public virtual BigInteger Pow(int exponent);
-        public static BigInteger ProbablePrime(int bitLength, Random random);
+        public static BigInteger ProbablePrime(int bitLength, Random rnd);
-        public virtual BigInteger Remainder(BigInteger divisor);
+        public virtual BigInteger Remainder(BigInteger val);
+        public virtual short ShortValueExact();
-        public virtual BigInteger Subtract(BigInteger value);
+        public virtual BigInteger Subtract(BigInteger val);
-        public static BigInteger ValueOf(long value);
+        public static BigInteger ValueOf(long val);
-        public virtual BigInteger Xor(BigInteger value);
+        public virtual BigInteger Xor(BigInteger val);
     }
     public sealed class MathContext : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
-        public MathContext(int precision);
+        public MathContext(int setPrecision);
-        public MathContext(int precision, RoundingMode roundingMode);
+        public MathContext(int setPrecision, RoundingMode setRoundingMode);
-        public MathContext(string s);
+        public MathContext(string val);
     }
 }

Java.Net

 namespace Java.Net {
     public interface ICookiePolicy : IDisposable, IJavaObject, IJavaPeerable {
+        ICookiePolicy AcceptAll { get; }
+        ICookiePolicy AcceptNone { get; }
+        ICookiePolicy AcceptOriginalServer { get; }
-        bool ShouldAccept(URI? uri, HttpCookie? cookie);
+        bool ShouldAccept(URI uri, HttpCookie cookie);
     }
     public class InetAddress : Object, IDisposable, IJavaObject, IJavaPeerable, ISerializable {
-        public virtual string HostAddress { get; }
+        public virtual string? HostAddress { get; }
-        public virtual byte[] GetAddress();
+        public virtual byte[]? GetAddress();
-        public static InetAddress[]? GetAllByName(string host);
+        public static InetAddress[]? GetAllByName(string? host);
-        public static InetAddress GetByAddress(byte[] addr);
+        public static InetAddress GetByAddress(byte[]? addr);
-        public static InetAddress GetByAddress(string host, byte[] addr);
+        public static InetAddress GetByAddress(string? host, byte[]? addr);
-        public static InetAddress GetByName(string host);
+        public static InetAddress GetByName(string? host);
-        public virtual bool IsReachable(NetworkInterface netif, int ttl, int timeout);
+        public virtual bool IsReachable(NetworkInterface? netif, int ttl, int timeout);
     }
 }

Java.Util

 namespace Java.Util {
     public interface IList : ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable {
+        IList CopyOf(ICollection coll);
     }
     public interface IMap : IDisposable, IJavaObject, IJavaPeerable {
+        IDictionary CopyOf(IDictionary map);
     }
     public interface ISet : ICollection, IDisposable, IIterable, IJavaObject, IJavaPeerable {
+        ICollection CopyOf(ICollection coll);
     }
     public abstract class List : Object {
+        public static IList CopyOf(ICollection coll);
     }
     public abstract class Map : Object {
+        public static IDictionary CopyOf(IDictionary map);
     }
     public abstract class Set : Object {
+        public static ICollection CopyOf(ICollection coll);
     }
 }

Java.Util.Concurrent

 namespace Java.Util.Concurrent {
     public class CompletableFuture : Object, ICompletionStage, IDisposable, IFuture, IJavaObject, IJavaPeerable {
+        public virtual ICompletionStage CompleteAsync(ISupplier supplier);
+        public virtual ICompletionStage CompleteAsync(ISupplier supplier, IExecutor executor);
+        public static ICompletionStage CompletedStage(Object value);
+        public virtual ICompletionStage CompleteOnTimeout(Object value, long timeout, TimeUnit unit);
+        public virtual ICompletionStage Copy();
+        public virtual IExecutor DefaultExecutor();
+        public static IExecutor DelayedExecutor(long delay, TimeUnit unit);
+        public static IExecutor DelayedExecutor(long delay, TimeUnit unit, IExecutor executor);
+        public static CompletableFuture FailedFuture(Throwable ex);
+        public static ICompletionStage FailedStage(Throwable ex);
+        public virtual ICompletionStage MinimalCompletionStage();
+        public virtual ICompletionStage NewIncompleteFuture();
+        public virtual ICompletionStage OrTimeout(long timeout, TimeUnit unit);
     }
 }

Javax.Microedition.Khronos.Egl

 namespace Javax.Microedition.Khronos.Egl {
     public interface IEGL10 : IDisposable, IEGL, IJavaObject, IJavaPeerable {
+        Object EglDefaultDisplay { get; }
+        EGLContext EglNoContext { get; }
+        EGLDisplay EglNoDisplay { get; }
+        EGLSurface EglNoSurface { get; }
     }
 }

Org.XmlPull.V1

 namespace Org.XmlPull.V1 {
     public interface IXmlPullParser : IDisposable, IJavaObject, IJavaPeerable {
+        IList<string>? Types { get; }
     }
 }

Xamarin.Android.Net

 namespace Xamarin.Android.Net {
+    public class AndroidMessageHandler : HttpMessageHandler {
+        public AndroidMessageHandler();
+        public bool AllowAutoRedirect { get; set; }
+        public DecompressionMethods AutomaticDecompression { get; set; }
+        public TimeSpan ConnectTimeout { get; set; }
+        public CookieContainer CookieContainer { get; set; }
+        public ICredentials? Credentials { get; set; }
+        public int MaxAutomaticRedirections { get; set; }
+        public bool PreAuthenticate { get; set; }
+        public AuthenticationData? PreAuthenticationData { get; set; }
+        public IWebProxy? Proxy { get; set; }
+        public bool ProxyAuthenticationRequested { get; private set; }
+        public TimeSpan ReadTimeout { get; set; }
+        public IList<AuthenticationData>? RequestedAuthentication { get; private set; }
+        public bool RequestNeedsAuthorization { get; }
+        public IList<Certificate>? TrustedCerts { get; set; }
+        public bool UseCookies { get; set; }
+        public bool UseProxy { get; set; }
+        protected void AssertSelf();
+        protected override void Dispose(bool disposing);
+        protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken);
+    }
 }