-
Notifications
You must be signed in to change notification settings - Fork 531
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Mono.Android] Fix missing enum issues that cause BG8800 warnings. (#…
…8707) Fixes: #8703 #8730 reported that we did not bind [`HardwareBuffer.create(int width, int height, int format, int layers, long usage)`][0]. Indeed, in the build logs for `src/Mono.Android`, there is a BG8800 warning about it! obj/Debug/net9.0/android-34/mcw/api-34.xml(32327,10): warning BG8800: Unknown parameter type 'Android.Hardware.HardwareBufferUsage' for member 'Android.Hardware.HardwareBuffer.Create (int, int, Android.Hardware.HardwareBufferFormat, int, Android.Hardware.HardwareBufferUsage)' The BG8800 was generated because we attempted to map `long usage` to an `enum`, but no enum was created as the values are of type `long`, not `int`. Manually create a `long`-based `HardwareBufferUsage` enum: [Flags] /* partial */ enum HardwareBufferUsage : long { None = 0, UsageComposerOverlay = 0x800, // … } However, `generator` does not support `long` enums, and generates marshalling code using an `int`. Thus, we need to manually bind `HardwareBuffer.create()` and [`HardwareBuffer.getUsage()`][1] so we can replace the `int` machinery with `long`. While we're at it, audit all of the `BG8800` warnings that are caused by improper enumification and fix them: warning BG8800: Unknown parameter type 'Android.Hardware.HardwareBufferUsage' for member 'Android.Hardware.HardwareBuffer.Create (int, int, Android.Hardware.HardwareBufferFormat, int, Android.Hardware.Hardw... warning BG8800: Unknown parameter type 'Android.Hardware.HardwareBufferUsage' for member 'Android.Hardware.HardwareBuffer.IsSupported (int, int, Android.Hardware.HardwareBufferFormat, int, Android.Hardware.... warning BG8800: Unknown parameter type 'Android.App.Bind' for member 'Android.Content.Context'. warning BG8800: Unknown parameter type 'Android.App.Bind' for member 'Android.Content.Context.BindIsolatedService (Android.Content.Intent, Android.App.Bind, java.lang.String, java.util.concurrent.Executor, ... warning BG8800: Unknown parameter type 'Android.Graphics.ImageDecoderAllocatorType' for member 'Android.Graphics.ImageDecoder.SetAllocator (Android.Graphics.ImageDecoderAllocatorType)'. warning BG8800: Unknown parameter type 'Android.Net.WpsFailureReason' for member 'Android.Net.Wifi.WifiManager.WpsCallback.OnFailed (Android.Net.WpsFailureReason)'. warning BG8800: Unknown parameter type 'Android.OS.DeviceTemperatureSource' for member 'Android.OS.HardwarePropertiesManager.GetDeviceTemperatures (Android.OS.DeviceTemperatureType, Android.OS.DeviceTempera... warning BG8800: Unknown parameter type 'Android.Telephony.Mbms.DownloadStatus' for member 'Android.Telephony.Mbms.DownloadStatusListener.OnStatusUpdated (Android.Telephony.Mbms.DownloadRequest, Android.Tel... warning BG8800: Unknown parameter type 'Android.Telephony.StreamingMethod' for member 'Android.Telephony.Mbms.StreamingServiceCallback.OnStreamMethodUpdated (Android.Telephony.StreamingMethod)'. warning BG8800: Unknown parameter type 'Android.Telephony.StreamingState' for member 'Android.Telephony.Mbms.StreamingServiceCallback.OnStreamStateUpdated (Android.Telephony.StreamingState, Android.Telepho... warning BG8800: Unknown parameter type 'Android.Icu.Text.CollatorReorderCodes' for member 'Android.Icu.Text.Collator.GetEquivalentReorderCodes (Android.Icu.Text.CollatorReorderCodes)'. warning BG8800: Unknown parameter type 'params Android.Icu.Text.CollatorReorderCodes[]' for member 'Android.Icu.Text.Collator.SetReorderCodes (params Android.Icu.Text.CollatorReorderCodes[])'. This results in new API being surfaced that was previously not being bound, requiring updates to `src/Mono.Android/PublicAPI/API-34/PublicAPI.Unshipped.txt`. One of these new APIs is [`WpsCallback.OnFailed(WpsFailureReason)`][2], which is a *new* `abstract` method on an existing non-`abstract` type. Although this is a breaking change, this type previously could not have been inherited from as the Java-side `abstract` method would not have been implemented; consider this C# code: // This C# code compiles, no warnings or errors: class MyCallback : Android.Net.Wifi.WifiManager.WpsCallback { public override void OnStarted(string? pin) {} public override void OnSucceeded() {} } However, the `.csproj` containing `MyCallback` will fail to build: obj/Debug/net8.0-android/android/src/crc64475861335642e0f6/MyCallback.java(4,8): javac error JAVAC0000: error: MyCallback is not abstract and does not override abstract method onFailed(int) in WpsCallback Thus, add it as an "acceptable breakage". [0]: https://developer.android.com/reference/android/hardware/HardwareBuffer?hl=en#create(int,%20int,%20int,%20int,%20long) [1]: https://developer.android.com/reference/android/hardware/HardwareBuffer?hl=en#getUsage() [2]: https://developer.android.com/reference/android/net/wifi/WifiManager.WpsCallback?hl=en#onFailed(int)
- Loading branch information
Showing
10 changed files
with
239 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
using Android.Runtime; | ||
using Java.Interop; | ||
|
||
namespace Android.Hardware; | ||
|
||
public partial class HardwareBuffer | ||
{ | ||
// These are manually bound because we do not have a way to bind the `long` enum values. | ||
// generator treats them as int, like: | ||
// __args [4] = new JniArgumentValue ((int) usage); | ||
|
||
// Metadata.xml XPath method reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/method[@name='create' and count(parameter)=5 and parameter[1][@type='int'] and parameter[2][@type='int'] and parameter[3][@type='int'] and parameter[4][@type='int'] and parameter[5][@type='long']]" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
[Register ("create", "(IIIIJ)Landroid/hardware/HardwareBuffer;", "", ApiSince = 26)] | ||
public static unsafe Android.Hardware.HardwareBuffer Create (int width, int height, [global::Android.Runtime.GeneratedEnum] Android.Hardware.HardwareBufferFormat format, int layers, Android.Hardware.HardwareBufferUsage usage) | ||
{ | ||
const string __id = "create.(IIIIJ)Landroid/hardware/HardwareBuffer;"; | ||
try { | ||
JniArgumentValue* __args = stackalloc JniArgumentValue [5]; | ||
__args [0] = new JniArgumentValue (width); | ||
__args [1] = new JniArgumentValue (height); | ||
__args [2] = new JniArgumentValue ((int) format); | ||
__args [3] = new JniArgumentValue (layers); | ||
__args [4] = new JniArgumentValue ((long) usage); | ||
var __rm = _members.StaticMethods.InvokeObjectMethod (__id, __args); | ||
return global::Java.Lang.Object.GetObject<Android.Hardware.HardwareBuffer> (__rm.Handle, JniHandleOwnership.TransferLocalRef)!; | ||
} finally { | ||
} | ||
} | ||
|
||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
public unsafe Android.Hardware.HardwareBufferUsage Usage { | ||
// Metadata.xml XPath method reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/method[@name='getUsage' and count(parameter)=0]" | ||
[Register ("getUsage", "()J", "", ApiSince = 26)] | ||
get { | ||
const string __id = "getUsage.()J"; | ||
try { | ||
var __rm = _members.InstanceMethods.InvokeAbstractInt64Method (__id, this, null); | ||
return (Android.Hardware.HardwareBufferUsage) __rm!; | ||
} finally { | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
namespace Android.Hardware; | ||
|
||
[System.Flags] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
public enum HardwareBufferUsage : long | ||
{ | ||
None = 0, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_COMPOSER_OVERLAY']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android33.0")] | ||
UsageComposerOverlay = 2048, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_READ_OFTEN']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageCpuReadOften = 3, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_READ_RARELY']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageCpuReadRarely = 2, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_WRITE_OFTEN']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageCpuWriteOften = 48, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_WRITE_RARELY']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageCpuWriteRarely = 32, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_FRONT_BUFFER']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android33.0")] | ||
UsageFrontBuffer = 4294967296, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_COLOR_OUTPUT']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageGpuColorOutput = 512, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_CUBE_MAP']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
UsageGpuCubeMap = 33554432, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_DATA_BUFFER']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageGpuDataBuffer = 16777216, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_MIPMAP_COMPLETE']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
UsageGpuMipmapComplete = 67108864, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_SAMPLED_IMAGE']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageGpuSampledImage = 256, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_PROTECTED_CONTENT']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageProtectedContent = 16384, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_SENSOR_DIRECT_DATA']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageSensorDirectData = 8388608, | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_VIDEO_ENCODE']" | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] | ||
UsageVideoEncode = 65536 | ||
} |
24 changes: 24 additions & 0 deletions
24
src/Mono.Android/Android.Telephony.Mbms/StreamingService.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
using Android.Runtime; | ||
|
||
namespace Android.Telephony.Mbms; | ||
|
||
public partial class StreamingService | ||
{ | ||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony.mbms']/class[@name='StreamingService']/field[@name='STATE_STALLED']" | ||
[Register ("STATE_STALLED", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in a future version. Use Android.Telephony.StreamingState enum directly instead of this field.", error: true)] | ||
public const int StateStalled = 3; | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony.mbms']/class[@name='StreamingService']/field[@name='STATE_STARTED']" | ||
[Register ("STATE_STARTED", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in a future version. Use Android.Telephony.StreamingState enum directly instead of this field.", error: true)] | ||
public const int StateStarted = 2; | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony.mbms']/class[@name='StreamingService']/field[@name='STATE_STOPPED']" | ||
[Register ("STATE_STOPPED", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in a future version. Use Android.Telephony.StreamingState enum directly instead of this field.", error: true)] | ||
public const int StateStopped = 1; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Text; | ||
using System.Threading.Tasks; | ||
using Android.Runtime; | ||
|
||
namespace Android.Telephony; | ||
|
||
public partial class MbmsDownloadSession | ||
{ | ||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_ACTIVELY_DOWNLOADING']" | ||
[Register ("STATUS_ACTIVELY_DOWNLOADING", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] | ||
public const int StatusActivelyDownloading = 1; | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_PENDING_DOWNLOAD']" | ||
[Register ("STATUS_PENDING_DOWNLOAD", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] | ||
public const int StatusPendingDownload = 2; | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_PENDING_DOWNLOAD_WINDOW']" | ||
[Register ("STATUS_PENDING_DOWNLOAD_WINDOW", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] | ||
public const int StatusPendingDownloadWindow = 4; | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_PENDING_REPAIR']" | ||
[Register ("STATUS_PENDING_REPAIR", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] | ||
public const int StatusPendingRepair = 3; | ||
|
||
// Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_UNKNOWN']" | ||
[Register ("STATUS_UNKNOWN", ApiSince = 28)] | ||
[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] | ||
[global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] | ||
public const int StatusUnknown = 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,42 @@ | ||
#nullable enable | ||
#nullable enable | ||
abstract Android.Net.Wifi.WifiManager.WpsCallback.OnFailed(Android.Net.Wifi.WpsFailureReason reason) -> void | ||
Android.Graphics.ImageDecoder.Allocator.get -> Android.Graphics.ImageDecoderAllocator | ||
Android.Graphics.ImageDecoder.Allocator.set -> void | ||
Android.Hardware.HardwareBuffer.Usage.get -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.None = 0 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageComposerOverlay = 2048 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageCpuReadOften = 3 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageCpuReadRarely = 2 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageCpuWriteOften = 48 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageCpuWriteRarely = 32 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageFrontBuffer = 4294967296 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageGpuColorOutput = 512 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageGpuCubeMap = 33554432 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageGpuDataBuffer = 16777216 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageGpuMipmapComplete = 67108864 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageGpuSampledImage = 256 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageProtectedContent = 16384 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageSensorDirectData = 8388608 -> Android.Hardware.HardwareBufferUsage | ||
Android.Hardware.HardwareBufferUsage.UsageVideoEncode = 65536 -> Android.Hardware.HardwareBufferUsage | ||
Android.Telephony.Mbms.DownloadStatus | ||
Android.Telephony.Mbms.DownloadStatus.ActivelyDownloading = 1 -> Android.Telephony.Mbms.DownloadStatus | ||
Android.Telephony.Mbms.DownloadStatus.PendingDownload = 2 -> Android.Telephony.Mbms.DownloadStatus | ||
Android.Telephony.Mbms.DownloadStatus.PendingDownloadWindow = 4 -> Android.Telephony.Mbms.DownloadStatus | ||
Android.Telephony.Mbms.DownloadStatus.PendingRepair = 3 -> Android.Telephony.Mbms.DownloadStatus | ||
Android.Telephony.Mbms.DownloadStatus.Unknown = 0 -> Android.Telephony.Mbms.DownloadStatus | ||
Android.Telephony.StreamingState | ||
Android.Telephony.StreamingState.Stalled = 3 -> Android.Telephony.StreamingState | ||
Android.Telephony.StreamingState.Started = 2 -> Android.Telephony.StreamingState | ||
Android.Telephony.StreamingState.Stopped = 1 -> Android.Telephony.StreamingState | ||
static Android.Hardware.HardwareBuffer.Create(int width, int height, Android.Hardware.HardwareBufferFormat format, int layers, Android.Hardware.HardwareBufferUsage usage) -> Android.Hardware.HardwareBuffer! | ||
static Android.Hardware.HardwareBuffer.IsSupported(int width, int height, Android.Hardware.HardwareBufferFormat format, int layers, long usage) -> bool | ||
static Android.Icu.Text.Collator.GetEquivalentReorderCodes(int reorderCode) -> int[]? | ||
virtual Android.Content.Context.BindIsolatedService(Android.Content.Intent! service, Android.Content.Context.BindServiceFlags! flags, string! instanceName, Java.Util.Concurrent.IExecutor! executor, Android.Content.IServiceConnection! conn) -> bool | ||
virtual Android.Content.Context.BindIsolatedService(Android.Content.Intent! service, int flags, string! instanceName, Java.Util.Concurrent.IExecutor! executor, Android.Content.IServiceConnection! conn) -> bool | ||
virtual Android.Icu.Text.Collator.GetReorderCodes() -> int[]? | ||
virtual Android.Icu.Text.Collator.SetReorderCodes(params int[]? order) -> void | ||
virtual Android.OS.HardwarePropertiesManager.GetDeviceTemperatures(Android.OS.DeviceTemperatureType type, Android.OS.TemperatureSource source) -> float[]! | ||
virtual Android.Telephony.Mbms.DownloadStatusListener.OnStatusUpdated(Android.Telephony.Mbms.DownloadRequest? request, Android.Telephony.Mbms.FileInfo? fileInfo, Android.Telephony.Mbms.DownloadStatus status) -> void | ||
virtual Android.Telephony.Mbms.StreamingServiceCallback.OnStreamMethodUpdated(Android.Telephony.Mbms.StreamingMethod methodType) -> void | ||
virtual Android.Telephony.Mbms.StreamingServiceCallback.OnStreamStateUpdated(Android.Telephony.StreamingState state, Android.Telephony.Mbms.StreamingStateChangedReason reason) -> void |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.