[英]How to extract Bluetooth Scan Results from intent?
有人如何从 C# 中的意图 object 中提取扫描结果?
我有一个来自 BroadcastReceiver 的回调 class。 在同一个 class 中,我有这种覆盖方法,我正在扫描蓝牙设备。
public override void OnReceive(Context context, Intent intent)
{
BluetoothDevice device = (BluetoothDevice)intent.GetParcelableExtra(BluetoothDevice.ExtraDevice)
}
我需要知道是否有办法从该意图 object 中提取 ScanResults,以便我可以将这些 ScanResults 转换为 byte[] 并开始解析信息。
public override void OnScanResult(ScanCallbackType callbackType, ScanResult result)
{
}
换句话说,我可以使用所描述的第一种方法来获得关于 ScanResult 的第二种方法的结果吗?
看一下Newtonsoft ,它可以将any object
序列化为 json 字符串然后反序列化。
这里我们需要ScanResult
转换为string
,然后将其传递给Intent
,然后在BroadcastReceiver接收器class中将ScanResult
反序列化为ScanResult。
将ScanResult
转换为 Json 字符串。
public override void OnScanResult(ScanCallbackType callbackType, ScanResult result) { string json = JsonConvert.SerializeObject(result); Intent intent = new Intent("MyAction"); intent.PutExtra("MyJson",json); SendBroadcast(intent); }
将 Json 字符串转换为ScanResult
。
public override void OnReceive(Context context, Intent intent) { if ("MyAction".Equals(intent.Action)) { string json = intent.GetStringExtra("MyJson"); ScanResult result = JsonConvert.DeserializeObject<ScanResult>(json); // do something } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.