【问题标题】:Xamarin Bluetooth ScanXamarin 蓝牙扫描
【发布时间】:2015-12-09 15:28:42
【问题描述】:

今天我开始使用 C# 进行开发,并尝试扫描信标。 这就是我来的距离..

        protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);            
        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);

        BluetoothAdapter oBluetoothAdapter = BluetoothAdapter.DefaultAdapter;
        BluetoothLeScanner oScanner = oBluetoothAdapter.BluetoothLeScanner;

        ScanCallback oCallback;



        if(!oBluetoothAdapter.IsEnabled)
        {
            StartActivity(new Intent(BluetoothAdapter.ActionRequestEnable));
        } 
        else
        {
            oScanner.StartScan(oCallback);
        }
    }

问题是我不知道如何使用StartScan函数的回调参数。有人可以告诉我如何正确使用回调吗?

【问题讨论】:

  • 您是否尝试通过基类扩展ScanCallback
  • 我想你的意思是给 oCallback.OnScanResult 添加一个委托?
  • 我是一个android人,所以我习惯了Java,对不起:)无论如何,是的,委托oCallback.OnScanResult或扩展ScanCallback和实现OnScanResult方法是一样的事物。如果该方法正在触发(您将通过日志发现),那么一切都很好。

标签: c# android xamarin bluetooth


【解决方案1】:

在 android 上的实现是这样的:

_Manager = (BluetoothManager)appContext.GetSystemService("bluetooth");
_Adapter = _Manager.Adapter;
_LeScanner = _Adapter.BluetoothLeScanner;
 _BluetoothScanCallback = new BluetoothScanCallback();

然后,当您开始扫描时,它会是这样的:

_LeScanner.StartScan(_BluetoothScanCallback);

BluetoothScanCallback 的实现方式如下:

public class BluetoothScanCallback : ScanCallback
{
    public override void OnScanResult([GeneratedEnum] ScanCallbackType callbackType, ScanResult result)
    {
        base.OnScanResult(callbackType, result);
    }
}

【讨论】:

    猜你喜欢
    • 2015-03-03
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2020-05-16
    相关资源
    最近更新 更多