以 xamarin 形式实施 android beam

implement android beam in xamarin forms

我正在开发使用 NFC 的跨平台移动应用程序。我已经检查了 xamarin android beam here。现在我正在尝试使用 xamarin 表单实现相同的示例,所以我正在使用依赖服务从 android 项目调用函数。我尝试制作从设备传递到另一个设备的简单消息,但它没有用。问题是 NfcAdapter.IOnNdefPushCompleteCallback

的实现

PhoneBeam.cs

using System;
using System.Text;
using Android.App;
using MyApp.Droid;
using Android.Nfc;
using Xamarin.Forms;

[assembly: Dependency(typeof(PhoneBeam))]
namespace MyApp.Droid
{
    public class PhoneBeam : Activity, NfcAdapter.ICreateNdefMessageCallback, NfcAdapter.IOnNdefPushCompleteCallback, iBeam
    {

        private NfcAdapter nfcAdapter;

        public void Beam()
        {


            nfcAdapter = NfcAdapter.GetDefaultAdapter(MainActivity.Instance);

            nfcAdapter.SetNdefPushMessageCallback(this, MainActivity.Instance);
            nfcAdapter.SetOnNdefPushCompleteCallback(this, MainActivity.Instance);

        }

        public NdefMessage CreateNdefMessage(NfcEvent evt)
        {
            DateTime time = DateTime.Now;
            var text = ("Beam me up!\n\n" + "Beam : " +
                time.ToString("HH:mm:ss"));
            NdefMessage msg = new NdefMessage(
                new NdefRecord[]{ CreateMimeRecord (
            "application/com.example.android.beam",
            Encoding.UTF8.GetBytes (text)) });

            return msg;
        }

        public NdefRecord CreateMimeRecord(String mimeType, byte[] payload)
        {
            byte[] mimeBytes = Encoding.UTF8.GetBytes(mimeType);
            NdefRecord mimeRecord = new NdefRecord(
                NdefRecord.TnfMimeMedia, mimeBytes, new byte[0], payload);
            return mimeRecord;
        }

    }

}

它说 'PhoneBeam does not implement interface member NfcAdapter.IOnNdefPushCompleteCallback.OnNdefPushComplete(NfcEvent)'。我错过了什么吗?

您的 class 实现 IOnNdefPushCompleteCallback,它有一个 public 方法 OnNdefPushComplete 必须实现才能满足接口。