我正在针对Xamarin.Forms使用BLE设备。您能帮忙解决以下问题吗?我正在使用此Package
扫描后,我有一些设备。我正在选择设备。选择后,我正在连接到该设备。
我有一些服务清单。所以我迭代了一项服务,并且得到了该服务的特征
我有一些特征列表。我正在迭代第一个特征并阅读。应用程序崩溃了。
告诉我们应该怎么办
它应该读取并给出字节,而不是崩溃
Excepotion
不被抛出。这些是我在输出屏幕中获得的详细信息
12-20 17:54:18.170 D/BluetoothGatt(20372): onConnectionUpdated() - Device=98:07:2D:45:76:83 interval=39 latency=0 timeout=500 status=0
12-20 17:54:22.020 D/BluetoothGatt(20372): onConnectionUpdated() - Device=98:07:2D:45:76:83 interval=798 latency=0 timeout=1000 status=0
12-20 17:54:22.290 I/Choreographer(20372): Skipped 248 frames! The application may be doing too much work on its main thread.
12-20 17:54:22.292 W/Looper (20372): Slow Frame: doFrame is 4148ms late
12-20 17:54:24.763 F/ (20372): * Assertion at /Users/builder/jenkins/workspace/xamarin-android-d15-9/xamarin-android/external/mono/mono/mini/debugger-agent.c:4931, condition `is_ok (error)' not met, function:get_this_async_id, Could not execute the method because the containing type is not fully instantiated. assembly:<unknown assembly> type:<unknown type> member:(null)
插件版本:例如2.1.1(最新)
平台:Android 8.1 API-27
设备:Redmi Note
Xamarin.Forms :4.4.0.991265(最新)
我无法附上样品。这是我的摘录
private async void Button_Clicked(object sender, EventArgs e)
{
var services = await _connectedDevice.GetServicesAsync();
if (services != null)
{
var characteristics = await services[0].GetCharacteristicsAsync();
if (characteristics != null)
{
foreach (var character in characteristics)
{
var byteValue = await character.ReadAsync(); /// Crashed while reading this line
var str = Encoding.UTF8.GetString(byteValue);
output.Text = str;
}
}
}
}
预先感谢
答案 0 :(得分:0)
如果我通过ViewModel读取特性,则效果很好。我没有单击按钮,而是在列表视图和点击的项目中创建了一组服务,列出了一组特征,然后阅读了