2016-03-03 7 views
7

में विफल रहा है दूरस्थ रिमोट डिवाइस से विशेषताओं को पढ़ने पर हमें एक समस्या का सामना करना पड़ रहा है।और पढ़ें दूरस्थ बीएलई डिवाइस से 20 बाइट लॉलीपॉप

यह समस्या Android OS 5.0 और बाद में होती है।

  1. एक सेवा और एक विशेषताओं के साथ एक परिधीय उपकरण बनाओ:

    अंक उत्पन्न करने के लिए इस मुद्दे को नीचे हैं।

  2. विशेषताएं केवल पढ़ने की अनुमति होगी। अब 20 से अधिक वर्णों के साथ 20 विशेषताओं के साथ इस विशेषताओं का मान सेट करें।
  3. अब परिधीय डिवाइस को एक सेवा और एक विशेषताओं के साथ प्रसारित करने दें।
  4. अब बाजार से किसी भी बीएलई स्कैनर ऐप लॉन्च करें और इस परिधीय डिवाइस से कनेक्ट करें।
  5. परिधीय डिवाइस से सफलतापूर्वक कनेक्ट होने के बाद बस विशेषताओं को पढ़ने का प्रयास करें।
  6. इस मामले में यह कोई डेटा नहीं दिखाएगा और ऐप को डिबग करने पर यह दिखाएगा कि यह शून्य डेटा देता है।
  7. उपरोक्त वही मामला एंड्रॉइड ओएस 5.0 और उसके बाद में काम नहीं कर रहा है।
  8. वही मामला एंड्रॉइड 4.4 में काम कर रहा है।

तो वहाँ Android ओएस 5.0 में और कहा कि आंतरिक रूप से अक्षम readblob() अनुरोध है कि अधिक है कि 20 वर्ण होने डेटा पढ़ सकते हैं इसके बाद के संस्करण कुछ परिवर्तन है।

हम इस मुद्दे को हल करने के लिए कुछ मदद चाहते हैं।

+0

http://stackoverflow.com/questions/24135682/android-sending-data-20-bytes-by-ble – pRaNaY

उत्तर

0

यह आपके डेटा को 20 बाइट पैकेट में विभाजित करके और प्रत्येक पैकेट भेजने के बीच एक छोटी देरी (यानी नींद() का उपयोग करके) को आसानी से प्राप्त किया जा सकता है।

आप BluetoothGatt.requestMtu() का उपयोग कर सकते हैं। आप और अधिक 20 बाइट भेज चाहते हैं Official document of BluetoothGatt.requestMtu

 Request an MTU size used for a given connection. 
     When performing a write request operation (write without response), the data  
sent is truncated to the MTU size. This function may be used to request a larger MTU size to be able to send more data at once. 

A onMtuChanged(BluetoothGatt, int, int) callback will indicate whether this operation was successful. 

Requires BLUETOOTH permission. 

देखें, तो आप परिभाषित करना चाहिए सरणी बाइट [] शामिल हैं कि आप कितने पैकेट चाहते हैं। वहाँ एक उदाहरण है Android: Sending data >20 bytes by BLE

इसके अलावा वहाँ एक और उदाहरण है How to send more than 20 bytes data over ble in android?

संबंधित मुद्दे