diff --git a/src/Essentials/src/Accelerometer/Accelerometer.shared.cs b/src/Essentials/src/Accelerometer/Accelerometer.shared.cs
index e4b6424b2b06..6e1004d2890d 100644
--- a/src/Essentials/src/Accelerometer/Accelerometer.shared.cs
+++ b/src/Essentials/src/Accelerometer/Accelerometer.shared.cs
@@ -8,7 +8,7 @@ namespace Microsoft.Maui.Devices.Sensors
///
/// Accelerometer data of the acceleration of the device in three-dimensional space.
///
- public interface IAccelerometer
+ public interface IAccelerometer : ISensor
{
///
/// Occurs when the sensor reading changes.
@@ -19,30 +19,6 @@ public interface IAccelerometer
/// Occurs when the accelerometer detects that the device has been shaken.
///
event EventHandler? ShakeDetected;
-
- ///
- /// Gets a value indicating whether reading the accelerometer is supported on this device.
- ///
- bool IsSupported { get; }
-
- ///
- /// Gets a value indicating whether the accelerometer is being monitored.
- ///
- bool IsMonitoring { get; }
-
- ///
- /// Start monitoring for changes to accelerometer.
- ///
- ///
- /// Will throw if is .
- /// Will throw if is .
- /// Speed to monitor the sensor.
- void Start(SensorSpeed sensorSpeed);
-
- ///
- /// Stop monitoring for changes to accelerometer.
- ///
- void Stop();
}
///
diff --git a/src/Essentials/src/AppActions/AppActions.shared.cs b/src/Essentials/src/AppActions/AppActions.shared.cs
index 2f0c239a205a..6cddfc6bb1f6 100644
--- a/src/Essentials/src/AppActions/AppActions.shared.cs
+++ b/src/Essentials/src/AppActions/AppActions.shared.cs
@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
+using Microsoft.Maui.Devices;
#if ANDROID
using Android.Content;
#endif
@@ -11,13 +12,8 @@ namespace Microsoft.Maui.ApplicationModel
///
/// The AppActions API lets you create and respond to app shortcuts from the app icon.
///
- public interface IAppActions
+ public interface IAppActions : IDeviceCapabilities
{
- ///
- /// Gets if app actions are supported on this device.
- ///
- bool IsSupported { get; }
-
///
/// Retrieves all the currently available instances.
///
diff --git a/src/Essentials/src/Barometer/Barometer.shared.cs b/src/Essentials/src/Barometer/Barometer.shared.cs
index 5d1009bca035..028441bd5e3d 100644
--- a/src/Essentials/src/Barometer/Barometer.shared.cs
+++ b/src/Essentials/src/Barometer/Barometer.shared.cs
@@ -7,33 +7,12 @@ namespace Microsoft.Maui.Devices.Sensors
///
/// Monitor changes to the atmospheric pressure.
///
- public interface IBarometer
+ public interface IBarometer : ISensor
{
- ///
- /// Gets a value indicating whether reading the barometer is supported on this device.
- ///
- bool IsSupported { get; }
-
- ///
- /// Gets a value indicating whether the barometer is actively being monitored.
- ///
- bool IsMonitoring { get; }
-
- ///
- /// Start monitoring for changes to the barometer.
- ///
- /// The speed to listen for changes.
- void Start(SensorSpeed sensorSpeed);
-
///
/// Occurs when the barometer reading changes.
///
event EventHandler? ReadingChanged;
-
- ///
- /// Stop monitoring for changes to the barometer.
- ///
- void Stop();
}
///
diff --git a/src/Essentials/src/Compass/Compass.shared.cs b/src/Essentials/src/Compass/Compass.shared.cs
index daa3cc590824..644bba1223e3 100644
--- a/src/Essentials/src/Compass/Compass.shared.cs
+++ b/src/Essentials/src/Compass/Compass.shared.cs
@@ -7,24 +7,8 @@ namespace Microsoft.Maui.Devices.Sensors
///
/// Monitor changes to the orientation of the user's device.
///
- public interface ICompass
+ public interface ICompass : ISensor
{
- ///
- /// Gets a value indicating whether reading the compass is supported on this device.
- ///
- bool IsSupported { get; }
-
- ///
- /// Gets if compass is actively being monitored.
- ///
- bool IsMonitoring { get; }
-
- ///
- /// Start monitoring for changes to the compass.
- ///
- /// The speed to monitor for changes.
- void Start(SensorSpeed sensorSpeed);
-
///
/// Start monitoring for changes to the compass.
///
@@ -32,11 +16,6 @@ public interface ICompass
/// Whether or not to apply a moving average filter (only used on Android).
void Start(SensorSpeed sensorSpeed, bool applyLowPassFilter);
- ///
- /// Stop monitoring for changes to the compass.
- ///
- void Stop();
-
///
/// Occurs when compass reading changes.
///
diff --git a/src/Essentials/src/Gyroscope/Gyroscope.shared.cs b/src/Essentials/src/Gyroscope/Gyroscope.shared.cs
index 59244468478c..b758536de4ba 100644
--- a/src/Essentials/src/Gyroscope/Gyroscope.shared.cs
+++ b/src/Essentials/src/Gyroscope/Gyroscope.shared.cs
@@ -8,29 +8,8 @@ namespace Microsoft.Maui.Devices.Sensors
///
/// The Gyroscope API lets you monitor the device's gyroscope sensor which is the rotation around the device's three primary axes.
///
- public interface IGyroscope
+ public interface IGyroscope : ISensor
{
- ///
- /// Gets a value indicating whether reading the gyroscope is supported on this device.
- ///
- bool IsSupported { get; }
-
- ///
- /// Gets a value indicating whether the gyroscope is actively being monitored.
- ///
- bool IsMonitoring { get; }
-
- ///
- /// Start monitoring for changes to the gyroscope.
- ///
- /// The speed to listen for changes.
- void Start(SensorSpeed sensorSpeed);
-
- ///
- /// Stop monitoring for changes to the gyroscope.
- ///
- void Stop();
-
///
/// Occurs when the gyroscope reading changes.
///
diff --git a/src/Essentials/src/HapticFeedback/HapticFeedback.shared.cs b/src/Essentials/src/HapticFeedback/HapticFeedback.shared.cs
index 4744e1e727e7..52f6a690e0dc 100644
--- a/src/Essentials/src/HapticFeedback/HapticFeedback.shared.cs
+++ b/src/Essentials/src/HapticFeedback/HapticFeedback.shared.cs
@@ -5,13 +5,8 @@ namespace Microsoft.Maui.Devices
///
/// The HapticFeedback API lets you control haptic feedback on the device.
///
- public interface IHapticFeedback
+ public interface IHapticFeedback : IDeviceCapabilities
{
- ///
- /// Gets a value indicating whether haptic feedback is supported on this device.
- ///
- bool IsSupported { get; }
-
///
/// Perform a type of haptic feedback on the device.
///
diff --git a/src/Essentials/src/Magnetometer/Magnetometer.shared.cs b/src/Essentials/src/Magnetometer/Magnetometer.shared.cs
index 5c0d65d3107c..1f0dab007aef 100644
--- a/src/Essentials/src/Magnetometer/Magnetometer.shared.cs
+++ b/src/Essentials/src/Magnetometer/Magnetometer.shared.cs
@@ -6,31 +6,10 @@
namespace Microsoft.Maui.Devices.Sensors
{
///
- /// Detect device's orentation relative to Earth's magnetic field in microteslas (µ).
+ /// Detect device's orentation relative to Earth's magnetic field in microteslas (�).
///
- public interface IMagnetometer
+ public interface IMagnetometer : ISensor
{
- ///
- /// Gets a value indicating whether reading the magnetometer is supported on this device.
- ///
- bool IsSupported { get; }
-
- ///
- /// Gets a value indicating whether the magnetometer is actively being monitored.
- ///
- bool IsMonitoring { get; }
-
- ///
- /// Start monitoring for changes to the magnetometer.
- ///
- /// The speed to listen for changes.
- void Start(SensorSpeed sensorSpeed);
-
- ///
- /// Stop monitoring for changes to the magnetometer.
- ///
- void Stop();
-
///
/// Occurs when the magnetometer reading changes.
///
@@ -38,7 +17,7 @@ public interface IMagnetometer
}
///
- /// Detect device's orentation relative to Earth's magnetic field in microteslas (µ).
+ /// Detect device's orentation relative to Earth's magnetic field in microteslas (�).
///
public static partial class Magnetometer
{
@@ -138,7 +117,7 @@ public MagnetometerData(float x, float y, float z) =>
MagneticField = new Vector3(x, y, z);
///
- /// Gets the magnetic field vector in microteslas (µ).
+ /// Gets the magnetic field vector in microteslas (�).
///
public Vector3 MagneticField { get; }
diff --git a/src/Essentials/src/OrientationSensor/OrientationSensor.shared.cs b/src/Essentials/src/OrientationSensor/OrientationSensor.shared.cs
index c0d16fea5dab..d4da2690d88c 100644
--- a/src/Essentials/src/OrientationSensor/OrientationSensor.shared.cs
+++ b/src/Essentials/src/OrientationSensor/OrientationSensor.shared.cs
@@ -8,29 +8,8 @@ namespace Microsoft.Maui.Devices.Sensors
///
/// The OrientationSensor API lets you monitor the orientation of a device in three dimensional space.
///
- public interface IOrientationSensor
+ public interface IOrientationSensor : ISensor
{
- ///
- /// Gets a value indicating whether reading the orientation sensor is supported on this device.
- ///
- bool IsSupported { get; }
-
- ///
- /// Gets a value indicating whether the orientation sensor is actively being monitored.
- ///
- bool IsMonitoring { get; }
-
- ///
- /// Start monitoring for changes to the orientation.
- ///
- /// The speed to listen for changes.
- void Start(SensorSpeed sensorSpeed);
-
- ///
- /// Stop monitoring for changes to the orientation.
- ///
- void Stop();
-
///
/// Occurs when the orientation reading changes.
///
diff --git a/src/Essentials/src/PhoneDialer/PhoneDialer.shared.cs b/src/Essentials/src/PhoneDialer/PhoneDialer.shared.cs
index 47cf6541640f..caf71eb4a6a4 100644
--- a/src/Essentials/src/PhoneDialer/PhoneDialer.shared.cs
+++ b/src/Essentials/src/PhoneDialer/PhoneDialer.shared.cs
@@ -1,18 +1,14 @@
#nullable enable
using System;
+using Microsoft.Maui.Devices;
namespace Microsoft.Maui.ApplicationModel.Communication
{
///
/// The PhoneDialer API enables an application to open a phone number in the dialer.
///
- public interface IPhoneDialer
+ public interface IPhoneDialer : IDeviceCapabilities
{
- ///
- /// Gets a value indicating whether using the phone dialer is supported on this device.
- ///
- bool IsSupported { get; }
-
///
/// Open the phone dialer to a specific phone number.
///
diff --git a/src/Essentials/src/PublicAPI/net-android/PublicAPI.Unshipped.txt b/src/Essentials/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
index 272827ad5762..3d80d97a4b52 100644
--- a/src/Essentials/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
+++ b/src/Essentials/src/PublicAPI/net-android/PublicAPI.Unshipped.txt
@@ -21,7 +21,41 @@ static Microsoft.Maui.Authentication.WebAuthenticatorExtensions.AuthenticateAsyn
static Microsoft.Maui.Devices.Sensors.Geolocation.IsEnabled.get -> bool
static Microsoft.Maui.Media.MediaPicker.PickPhotosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Media.MediaPicker.PickVideosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
-*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
-static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
+*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+Microsoft.Maui.Devices.Sensors.ISensor
+Microsoft.Maui.Devices.Sensors.ISensor.IsMonitoring.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+Microsoft.Maui.Devices.Sensors.ISensor.Stop() -> void
+Microsoft.Maui.Devices.IDeviceCapabilities
+Microsoft.Maui.Devices.IDeviceCapabilities.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.Communication.IPhoneDialer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.IAppActions.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IHapticFeedback.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IVibration.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Stop() -> void
\ No newline at end of file
diff --git a/src/Essentials/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt b/src/Essentials/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
index 272827ad5762..3d80d97a4b52 100644
--- a/src/Essentials/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
+++ b/src/Essentials/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
@@ -21,7 +21,41 @@ static Microsoft.Maui.Authentication.WebAuthenticatorExtensions.AuthenticateAsyn
static Microsoft.Maui.Devices.Sensors.Geolocation.IsEnabled.get -> bool
static Microsoft.Maui.Media.MediaPicker.PickPhotosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Media.MediaPicker.PickVideosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
-*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
-static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
+*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+Microsoft.Maui.Devices.Sensors.ISensor
+Microsoft.Maui.Devices.Sensors.ISensor.IsMonitoring.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+Microsoft.Maui.Devices.Sensors.ISensor.Stop() -> void
+Microsoft.Maui.Devices.IDeviceCapabilities
+Microsoft.Maui.Devices.IDeviceCapabilities.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.Communication.IPhoneDialer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.IAppActions.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IHapticFeedback.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IVibration.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Stop() -> void
\ No newline at end of file
diff --git a/src/Essentials/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt b/src/Essentials/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
index 272827ad5762..3d80d97a4b52 100644
--- a/src/Essentials/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
+++ b/src/Essentials/src/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
@@ -21,7 +21,41 @@ static Microsoft.Maui.Authentication.WebAuthenticatorExtensions.AuthenticateAsyn
static Microsoft.Maui.Devices.Sensors.Geolocation.IsEnabled.get -> bool
static Microsoft.Maui.Media.MediaPicker.PickPhotosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Media.MediaPicker.PickVideosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
-*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
-static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
+*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+Microsoft.Maui.Devices.Sensors.ISensor
+Microsoft.Maui.Devices.Sensors.ISensor.IsMonitoring.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+Microsoft.Maui.Devices.Sensors.ISensor.Stop() -> void
+Microsoft.Maui.Devices.IDeviceCapabilities
+Microsoft.Maui.Devices.IDeviceCapabilities.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.Communication.IPhoneDialer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.IAppActions.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IHapticFeedback.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IVibration.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Stop() -> void
\ No newline at end of file
diff --git a/src/Essentials/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt b/src/Essentials/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
index 22774d48cde6..59d406b17749 100644
--- a/src/Essentials/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
+++ b/src/Essentials/src/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
@@ -3,6 +3,12 @@ Microsoft.Maui.Authentication.IWebAuthenticator.AuthenticateAsync(Microsoft.Maui
Microsoft.Maui.Devices.Sensors.IGeolocation.IsEnabled.get -> bool
Microsoft.Maui.Media.SpeechOptions.Rate.get -> float?
Microsoft.Maui.Media.SpeechOptions.Rate.set -> void
+static Microsoft.Maui.Authentication.WebAuthenticator.AuthenticateAsync(Microsoft.Maui.Authentication.WebAuthenticatorOptions! webAuthenticatorOptions, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+static Microsoft.Maui.Authentication.WebAuthenticator.AuthenticateAsync(System.Uri! url, System.Uri! callbackUrl, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+static Microsoft.Maui.Authentication.WebAuthenticatorExtensions.AuthenticateAsync(this Microsoft.Maui.Authentication.IWebAuthenticator! webAuthenticator, System.Uri! url, System.Uri! callbackUrl, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
+static Microsoft.Maui.Devices.Sensors.Geolocation.IsEnabled.get -> bool
+static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
+static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
*REMOVED*Microsoft.Maui.Storage.IFilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
Microsoft.Maui.Storage.IFilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Authentication.WebAuthenticator.AuthenticateAsync(Microsoft.Maui.Authentication.WebAuthenticatorOptions! webAuthenticatorOptions, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!
@@ -11,5 +17,37 @@ static Microsoft.Maui.Authentication.WebAuthenticatorExtensions.AuthenticateAsyn
static Microsoft.Maui.Devices.Sensors.Geolocation.IsEnabled.get -> bool
*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
-static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
-static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor
+Microsoft.Maui.Devices.Sensors.ISensor.IsMonitoring.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+Microsoft.Maui.Devices.Sensors.ISensor.Stop() -> void
+Microsoft.Maui.Devices.IDeviceCapabilities
+Microsoft.Maui.Devices.IDeviceCapabilities.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.Communication.IPhoneDialer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.IAppActions.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IHapticFeedback.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IVibration.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Stop() -> void
\ No newline at end of file
diff --git a/src/Essentials/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt b/src/Essentials/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
index 272827ad5762..3d80d97a4b52 100644
--- a/src/Essentials/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
+++ b/src/Essentials/src/PublicAPI/net-windows/PublicAPI.Unshipped.txt
@@ -21,7 +21,41 @@ static Microsoft.Maui.Authentication.WebAuthenticatorExtensions.AuthenticateAsyn
static Microsoft.Maui.Devices.Sensors.Geolocation.IsEnabled.get -> bool
static Microsoft.Maui.Media.MediaPicker.PickPhotosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Media.MediaPicker.PickVideosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
-*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
-static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
+*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+Microsoft.Maui.Devices.Sensors.ISensor
+Microsoft.Maui.Devices.Sensors.ISensor.IsMonitoring.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+Microsoft.Maui.Devices.Sensors.ISensor.Stop() -> void
+Microsoft.Maui.Devices.IDeviceCapabilities
+Microsoft.Maui.Devices.IDeviceCapabilities.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.Communication.IPhoneDialer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.IAppActions.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IHapticFeedback.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IVibration.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Stop() -> void
\ No newline at end of file
diff --git a/src/Essentials/src/PublicAPI/net/PublicAPI.Unshipped.txt b/src/Essentials/src/PublicAPI/net/PublicAPI.Unshipped.txt
index 272827ad5762..76171ca218c0 100644
--- a/src/Essentials/src/PublicAPI/net/PublicAPI.Unshipped.txt
+++ b/src/Essentials/src/PublicAPI/net/PublicAPI.Unshipped.txt
@@ -25,3 +25,37 @@ static Microsoft.Maui.Media.MediaPicker.PickVideosAsync(Microsoft.Maui.Media.Med
static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor
+Microsoft.Maui.Devices.Sensors.ISensor.IsMonitoring.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+Microsoft.Maui.Devices.Sensors.ISensor.Stop() -> void
+Microsoft.Maui.Devices.IDeviceCapabilities
+Microsoft.Maui.Devices.IDeviceCapabilities.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.Communication.IPhoneDialer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.IAppActions.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IHapticFeedback.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IVibration.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Stop() -> void
\ No newline at end of file
diff --git a/src/Essentials/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt b/src/Essentials/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
index 272827ad5762..3d80d97a4b52 100644
--- a/src/Essentials/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
+++ b/src/Essentials/src/PublicAPI/netstandard/PublicAPI.Unshipped.txt
@@ -21,7 +21,41 @@ static Microsoft.Maui.Authentication.WebAuthenticatorExtensions.AuthenticateAsyn
static Microsoft.Maui.Devices.Sensors.Geolocation.IsEnabled.get -> bool
static Microsoft.Maui.Media.MediaPicker.PickPhotosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Media.MediaPicker.PickVideosAsync(Microsoft.Maui.Media.MediaPickerOptions? options = null) -> System.Threading.Tasks.Task!>!
-*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
-static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
static Microsoft.Maui.Devices.HapticFeedback.IsSupported.get -> bool
static Microsoft.Maui.Devices.Vibration.IsSupported.get -> bool
+*REMOVED*static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+static Microsoft.Maui.Storage.FilePicker.PickMultipleAsync(Microsoft.Maui.Storage.PickOptions? options = null) -> System.Threading.Tasks.Task!>!
+Microsoft.Maui.Devices.Sensors.ISensor
+Microsoft.Maui.Devices.Sensors.ISensor.IsMonitoring.get -> bool
+Microsoft.Maui.Devices.Sensors.ISensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+Microsoft.Maui.Devices.Sensors.ISensor.Stop() -> void
+Microsoft.Maui.Devices.IDeviceCapabilities
+Microsoft.Maui.Devices.IDeviceCapabilities.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.Communication.IPhoneDialer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.ApplicationModel.IAppActions.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IHapticFeedback.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.IVibration.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IAccelerometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IBarometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.ICompass.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IGyroscope.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IMagnetometer.Stop() -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsMonitoring.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.IsSupported.get -> bool
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Start(Microsoft.Maui.Devices.Sensors.SensorSpeed sensorSpeed) -> void
+*REMOVED*Microsoft.Maui.Devices.Sensors.IOrientationSensor.Stop() -> void
\ No newline at end of file
diff --git a/src/Essentials/src/Sensors/IDeviceCapabilities.shared.cs b/src/Essentials/src/Sensors/IDeviceCapabilities.shared.cs
new file mode 100644
index 000000000000..d29adeaeeedb
--- /dev/null
+++ b/src/Essentials/src/Sensors/IDeviceCapabilities.shared.cs
@@ -0,0 +1,15 @@
+#nullable enable
+namespace Microsoft.Maui.Devices
+{
+ ///
+ /// Base interface for all interfaces related to device capabilities.
+ ///
+ public interface IDeviceCapabilities
+ {
+ ///
+ /// Gets a value indicating whether the device supports the specific capability.
+ ///
+ bool IsSupported { get; }
+
+ }
+}
\ No newline at end of file
diff --git a/src/Essentials/src/Sensors/ISensors.shared.cs b/src/Essentials/src/Sensors/ISensors.shared.cs
new file mode 100644
index 000000000000..759df5cab862
--- /dev/null
+++ b/src/Essentials/src/Sensors/ISensors.shared.cs
@@ -0,0 +1,33 @@
+#nullable enable
+using System;
+using System.Numerics;
+using Microsoft.Maui.Devices;
+using Microsoft.Maui.ApplicationModel;
+
+namespace Microsoft.Maui.Devices.Sensors
+{
+ ///
+ /// Base interface for all sensors.
+ ///
+ public interface ISensor : IDeviceCapabilities
+ {
+ ///
+ /// Gets a value indicating whether the sensor is actively being monitored.
+ ///
+ bool IsMonitoring { get; }
+
+ ///
+ /// Start monitoring for changes to the sensor.
+ ///
+ ///
+ /// Will throw if is .
+ /// Will throw if is .
+ /// Speed to monitor the sensor.
+ void Start(SensorSpeed sensorSpeed);
+
+ ///
+ /// Stop monitoring for changes to the sensor.
+ ///
+ void Stop();
+ }
+}
\ No newline at end of file
diff --git a/src/Essentials/src/Vibration/Vibration.shared.cs b/src/Essentials/src/Vibration/Vibration.shared.cs
index 4800ffed7355..fc15204ff34c 100644
--- a/src/Essentials/src/Vibration/Vibration.shared.cs
+++ b/src/Essentials/src/Vibration/Vibration.shared.cs
@@ -7,13 +7,8 @@ namespace Microsoft.Maui.Devices
///
/// The Vibration API provides an easy way to make the device vibrate.
///
- public interface IVibration
+ public interface IVibration : IDeviceCapabilities
{
- ///
- /// Gets a value indicating whether vibration is supported on this device.
- ///
- bool IsSupported { get; }
-
///
/// Vibrates the device for 500ms.
///