2015-09-18 9 views
9

को विफल कर दिया गया है, मैंने ब्लूटूथ LE विज्ञापन की कोशिश की है यानी एक एंड्रॉइड फोन का उपयोग बीएलई "परिधीय" डिवाइस के रूप में किया है। एक बार लगातार विज्ञापन शुरू करना और रोकना ठीक काम करता है लेकिन अगर मैं वास्तव में कुछ अलग-अलग डेटा संचारित करना चाहता हूं तो मुझे एक चक्र में विज्ञापन शुरू करना, बंद करना और पुनरारंभ करना होगा और हमेशा विज्ञापन पैकेज को बदलना होगा।ब्लूटूथ LE विज्ञापन शुरू होने पर और चक्रवात से

मैं निश्चित रूप से इन तरीकों का उपयोग कर रहा:
BluetoothLeAdvertiser.startAdvertising()
BluetoothLeAdvertiser.stopAdvertising()

कम से कम एक मोटोरोला मोटो जी 4G 2 पीढ़ी पर। (एक्सटी 1072) एंड्रॉइड 5.0.2 के साथ चक्र केवल थोड़ी देर के लिए चलता है और फिर ब्लूटूथ स्टैक में कुछ गलत हो जाता है और एक नया विज्ञापन अब शुरू नहीं किया जा सकता है। चक्र को जल्दी से चलाते समय यह जल्दी होता है और धीरे-धीरे चलने में अधिक समय लगता है, इसलिए यह कुछ बफर भरने से संबंधित हो सकता है।

मेरा प्रश्न है: क्या यह मोटोरोला की तुलना में अन्य उपकरणों पर भी होता है?

(और किसी भी अन्य संबंधित टिप्पणियों पाठ्यक्रम स्वागत के हैं।)

सैद्धांतिक रूप से यह कुछ निर्माता विशिष्ट एचएएल कार्यान्वयन पर निर्भर हो सकता है आदि तो मैं अगर मैं सिर्फ एक और डिवाइस मिलना चाहिए सक्षम होने के लिए जानना चाहते हैं इस पर काम करने के लिए Google/मोटोरोला से किसी भी फिक्स को निश्चित रूप से कुछ समय लगेगा।

यह परीक्षण ऐप। इस आज़माने के लिए इस्तेमाल किया जा सकता: सब कुछ ठीक हो जाता है

https://bitbucket.org/MarkusKauppinen/bleadvertisertest

यदि यह खुशी से विज्ञापन जारी रखें करेंगे और अगर इस समस्या reproduces, यह मिनट या तो के भीतर एक संवाद दिखाई देगा। यदि आपका डिवाइस ब्लूटूथ LE विज्ञापन या BLE का समर्थन नहीं करता है तो यह केवल क्रैश होगा। (यह सिर्फ एक त्वरित और गंदे परीक्षण ऐप है।)

इसे पुन: पेश करने का एक और आसान तरीका https://github.com/devunwired/accessory-samples से "ब्लूटूथडवेसर" ऐप चलाने के लिए है और केवल यूआई पर "अपडेट विज्ञापन" बटन पर टैप करना जारी रखें जबकि।

अतिरिक्त विवरण:

ब्लूटूथ ले परिधीय मोड का समर्थन (विज्ञापन देने के लिए आवश्यक) लॉलीपॉप में जोड़ा गया था और 4.x. में उपलब्ध नहीं है केवल कुछ उपकरणों में परिधीय मोड समर्थन होता है। संगतता में कम से कम कवर किया जाता है:

https://altbeacon.github.io/android-beacon-library/beacon-transmitter-devices.html Chipsets/Devices supporting Android 5 BLE peripheral mode chipsets supporting BLE peripheral role on Android 5

उदाहरण के लिए इन उपकरणों का समर्थन होना चाहिए: मोटोरोला मोटो ई 4 जी (2015), मोटोरोला मोटो जी 4G (। 2 जनरल), सोनी एक्सपीरिया एम 4 एक्वा, जेडटीई ब्लेड एस 6, मोटोरोला मोटो एक्स (2014), सैमसंग गैलेक्सी एस 6, गूगल नेक्सस 6, गूगल नेक्सस 9, एचटीसी वन एम 9, सैमसंग गैलेक्सी एस 6 एज।

"गंदे विवरण" के रूप में मैं हमेशा एक "GKI_Exception" LogCat में देख सकते हैं इससे पहले कि ऐसा होता है:

GKI_exception(): 65,524 getbuf: बफ़र्स की

बाहर तुरंत बाद पहला "GKI_Exception" विज्ञापन AdvertiseCallback.ADVERTISE_FAILED_INTERNAL_ERROR के साथ विफल रहता है। रेखा...

ई/BtGatt.btif? ### एएसएसईआरटी: बाहरी/ब्लूटूथ/ब्लूड्रॉइड/मुख्य /../ बीटीआईएफ/src/btif_gatt_client.c लाइन 803 संदर्भ स्थानांतरण विफल! (3) ###

... शायद प्रासंगिक है लेकिन मैं ब्लूड्रॉइड से परिचित नहीं हूं। कहा ज़ोर यहाँ है:

https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/android-5.0.2_r1/btif/src/btif_gatt_client.c#803

कुछ संभवतः संबंधित समस्याओं:
https://code.google.com/p/android/issues/detail?id=65455 < - मैं कुछ टिप्पणियाँ जोड़ लिया है और यह एक करने के लिए फ़ाइलों लॉग इन करें।
https://code.google.com/p/android-developer-preview/issues/detail?id=1753
Scanning large number of BLE Tags
Bluetooth Crash on Samsung S4

+1

मैं 5.1 के साथ मोटो जी एक्सटी 1032 और 5.0.2 के साथ मोटो जी एक्सटी 1063 के साथ समान मुद्दों में भाग रहा हूं। मैं स्कैन करने का प्रयास कर रहा हूं -> कनेक्ट -> विशेषताओं को पढ़ें -> डिस्कनेक्ट करें -> फिर से स्कैन करें लेकिन स्कैन को पुनरारंभ करते समय यह विफल हो जाएगा। क्या आपने इसके लिए समाधान ढूंढ लिया है? –

+0

दुर्भाग्य से कोई समाधान नहीं मिला। –

उत्तर

2

मैं एक मोटो जी 2 जनरल पर अपने ऐप का परीक्षण किया और एक ही समस्या में पड़।

मैंने इसे एंड्रॉइड 6.0 चलाने वाले नेक्सस 9 टैबलेट पर कोशिश की, वहां मैं त्रुटि को पुन: पेश नहीं कर सका और ऐसा लगता है कि यह काम करता है। एंड्रॉइड 5.1.1 के साथ एक नेक्सस प्लेयर पर भी यह बिना किसी समस्या के चल रहा है। तो या तो यह वास्तव में मोटो जी का मुद्दा है या - मुझे लगता है कि अधिक संभावना है - एंड्रॉइड 5.0.2 की एक बग जिसे बाद के संस्करणों में हल किया गया था।

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