मैं एक बीएलई आवेदन पर काम कर रहा हूँ। मैं MI बैंड से जुड़ने और अपने Xamarin फॉर्म BLE ऐप के माध्यम से सेवाएं प्राप्त करने में सक्षम हूं। लेकिन जब मैं विशेषताओं को लिखने की कोशिश कर रहा हूं तो मुझे अपवाद मिल रहा है। मुझे अपवाद मिल रहा है

विशेषता लिखने का समर्थन नहीं करती है।

विधि WriteAsync() के लिए। यह मेरा कोड है जहां मैं विशेषताओं को लिख रहा हूं:

private async Task<string> ProcessDeviceInformationService(IService deviceInfoService)
    {
        try
        {
           await adapter.ConnectToDeviceAsync(device);
            var sb = new StringBuilder("Getting information from Device Information service: \n");
            var characteristics = await deviceInfoService.GetCharacteristicsAsync();
            var characteristic = await deviceInfoService.GetCharacteristicAsync(Guid.Parse("00002A27-0000-1000-8000-00805F9B34FB"));
           // characteristic.CanWrite = true;
            //foreach (var characteristic in characteristics)
            //{
                try
                {
                   // await Task.Delay(300);
                    var bytes = await characteristic.ReadAsync();
                    var str = Encoding.UTF8.GetString(bytes, 0, 0);
                    ManufacturerLabel.Text = str;
                    //var characteristic = await deviceInfoService.GetCharacteristicAsync(GattCharacteristicIdentifiers.DataExchange);
                    if (characteristic != null)
                    {
                        byte[] senddata = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(SendMessageLabel.Text) ? "jenx.si was here" : SendMessageLabel.Text);
                        await Task.Delay(300);
                        var newbytes = await characteristic.WriteAsync(senddata);
                        var strnew = Encoding.UTF8.GetString(senddata, 0, 0);
                        ManufacturerLabel.Text = newbytes.ToString();
                        //var strnew = Encoding.UTF8.GetString(newbytes, 0, 0);
                    }
                   
                   // ManufacturerLabel.Text = str;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            //}

            return sb.ToString();
        }

मुझे नहीं पता कि इसे कैसे ठीक किया जाए कोई सुझाव?

7
Judson Abraham 6 नवम्बर 2020, 00:38

1 उत्तर

सबसे बढ़िया उत्तर

मैंने इसका समाधान किया। सबसे पहले हमें यह जांचने की आवश्यकता है कि क्या इसमें विशेषता का लेखन कार्य है इसके लिए आप प्ले स्टोर से BLE स्कैनर नामक एक ऐप डाउनलोड कर सकते हैं और उस डिवाइस से कनेक्ट कर सकते हैं। जब हम उस बीएलई से जुड़ते हैं तो हम बीएलई पेरिफेरल की उपलब्ध सेवाओं और विशेषताओं को देख पाएंगे। और वहां हमें यह जांचने की आवश्यकता है कि किन विशेषताओं में लेखन कार्य है। इसलिए यदि आप उन विशेषताओं के लिए लेखन विशेषताएँ करने का प्रयास करते हैं जिनका परिधीय में कोई लेखन कार्य नहीं है तो यह अपवाद लेखन की अनुमति नहीं है देगा।

3
Judson Abraham 14 नवम्बर 2020, 09:09