Gab*_*Gab 3 android-activity maui net6.0-android nfcadapter
我有一个 Xamarin.Forms (Android) 库,允许使用 NFC,代码如下:
public class MediaAccessReader : Java.Lang.Object, NfcAdapter.IReaderCallback
{
public const string TypeName = "Nfc";
private static NfcAdapter NfcAdapter { get; } = NfcAdapter.GetDefaultAdapter(Android.App.Application.Context);
public string Name { get; set; }
public void Initialize(MediaAddedEventHandler mediaAdded, MediaRemovedEventHandler mediaRemoved)
{
Name = "Nfc";
#if XAMARINANDROID
var activity = Forms.Context as Activity;
NfcAdapter?.EnableReaderMode(activity, this, NfcReaderFlags.NfcA | NfcReaderFlags.NfcB | NfcReaderFlags.NfcF | NfcReaderFlags.NfcV | NfcReaderFlags.SkipNdefCheck, Bundle.Empty);
#else
var activity = ?????????????????;
NfcAdapter?.EnableReaderMode(activity , this, NfcReaderFlags.NfcA | NfcReaderFlags.NfcB | NfcReaderFlags.NfcF | NfcReaderFlags.NfcV | NfcReaderFlags.SkipNdefCheck, Bundle.Empty);
#endif
MediaAdded += mediaAdded;
MediaRemoved += mediaRemoved;
}
}
Run Code Online (Sandbox Code Playgroud)
如何替换该var activity = Forms.Context as Activity行以获取当前活动并能够在没有 Xamarin Forms 的情况下调用 NfcAdapter?.EnableReaderMode ?
否则,还有其他解决方案吗?
Xamarin.Essentials.Platform.CurrentActivity
Run Code Online (Sandbox Code Playgroud)
Essentials 已移植到 .Net Maui
Platform.CurrentActivity
Run Code Online (Sandbox Code Playgroud)