xamarin - 蓝牙 LE 不检测设备
问题描述
我尝试使用Bluetooth LE检测设备,按照此库中为 Xamarin 编写的操作,但设备发现 0
包括在 android 中的必要宣言。将扫描时间增加到 30 秒,但没有。启用蓝牙,4.0 版
Asus_Z00ED 设备 (Android 6.0 - API 23)。该项目是使用 Android 8.1 上的目标创建的。尝试在manifest中切换Android的目标版本(8.0,9.0),但也没有检测到
还有什么可能是缺乏检测的原因?
public class Page6 : ContentPage
{
IBluetoothLE ble;
IAdapter adapter;
ObservableCollection<IDevice> deviceList;
Label label;
public Page6()
{
ble = CrossBluetoothLE.Current;
adapter = CrossBluetoothLE.Current.Adapter;
deviceList = new ObservableCollection<IDevice>();
label = new Label { Text = "Welcome to Xamarin.Forms!" };
var buttonList = new Button() { Text = "Devices List" };
buttonList.Clicked += ButtonList_Clicked;
Content = new StackLayout
{
Children = {
label,
buttonList,
}
};
}
private async void ButtonList_Clicked(object sender, EventArgs e)
{
deviceList.Clear();
adapter.ScanTimeout = 30000;
adapter.DeviceDiscovered += (s, a) =>
{
deviceList.Add(a.Device);
};
await adapter.StartScanningForDevicesAsync(); // сканирование
label.Text = deviceList.Count.ToString();
}
}
解决方案
从您的 AndroidManifest.xml 中的 uses-sdk 标记中删除 android:targetSdkVersion 并且一切正常。我们项目的完整标签:
<uses-sdk android:minSdkVersion="15" />
推荐阅读
- excel - 在 Power Query 中使用多个维度按日期填充缺失的累积值
- android - Android Flutter 项目无法构建,出现各种错误
- arrays - PowerShell从数组中过滤基于以分号分隔的电子邮件,以管道分隔的数组中的对象值
- java - 如何在同一流语句中对 Collectors.groupedBy 的结果进行排序?
- sql - 如何聚合行并转换为列?
- django - 没有主键和 id 的 django 模型
- c# - 如何在.net核心中通过kafka和web api之间的标准开放遥测协议进行消息跟踪
- npm-install - 已安装 NPM Sim 模块和 Sim Cordova 插件,但仍未检测到模块
- ios - Xcode 构建错误“架构 arm64 的未定义符号”
- r - 如何在 R 中使用 rvest 在 URL 上抓取多个表