5

लॉक कर रहा है मेरे पास एक ऐप पूरा और तैयार है जो कस्टम ब्लूटूथ परिधीय से जुड़ता है जो हमने बनाया है। हालांकि मुझे अभी ऐप के साथ कोई समस्या मिली है जिसे मैं पिन नहीं कर सकता।एंड्रॉइड ब्लूटूथ कम ऊर्जा कभी-कभी

मैं अपने सभी ब्लूटूथ ऑपरेशंस को Service में चला रहा हूं और कभी-कभी जब मैं ब्लूटूथ ऑपरेशंस समाप्त करना चाहता हूं, तो मैं अभी भी 1 परिधीय जुड़ा हुआ हूं लेकिन मैंने इसे सभी पॉइंटर्स खो दिए हैं। और हर अब और फिर पूरा ब्लूटूथ स्टैक लॉक लग रहा है और फोन को रीबूट करने की आवश्यकता है।

मुझे लगता है कि स्कैनिंग रोकने के बाद किसी भी कनेक्टेड डिवाइस को साफ़ करने का प्रयास करते समय समस्याएं उत्पन्न हो रही हैं। मैं हालांकि मुझे लगता है कि कभी कभी एक परिधीय सब कुछ एक कनेक्शन है से डिस्कनेक्ट के रूप में एक ही समय में जोड़ने के माध्यम से आधे रास्ते है इस सफाई विधि

private void clearAllDevices() { 
     Log.e(TAG, "Clear all devices"); 
     for (int i = 0; i < _connectedPeripherals.size(); i++) { 
      Log.e(TAG, "int i:" + i + " _connectedPeripherals size:" + _connectedPeripherals.size()); 
      BluetoothGatt gatt = (BluetoothGatt) _connectedPeripherals.get(i); 
      gatt.disconnect(); 
     } 
} 

है।

क्या कनेक्ट होने की प्रक्रिया में सभी कनेक्टेड डिवाइस या डिवाइस को साफ़ करने का कोई बेहतर तरीका है?

उत्तर

5

bluetoothGatt.disconnect() अकेले पर्याप्त नहीं है। आपको bluetoothGatt.close() भी कॉल करना चाहिए।

आपके ऐप को एक BLE डिवाइस का उपयोग कर समाप्त हो गया है, यहclose()बुलाना चाहिए तो सिस्टम संसाधन उचित रूप से जारी कर सकते हैं।

देखें: API Guides > Bluetooth Low Energy

आप BluetoothGattCallback.onConnectionStateChange कॉलबैक के माध्यम से bluetoothGatt.disconnect() का परिणाम देख सकते हैं।

+0

धन्यवाद। मैं कल उस कोशिश करूँगा जब मुझे अपना प्रोटोटाइप वापस मिल जाएगा। मैंने कभी भी पढ़े गए किसी भी ट्यूटोरियल में करीबी() का उपयोग नहीं किया है। क्या मैं एक बार डिस्कनेक्ट होने पर ऑनकनेक्शनस्टेट चेंज कॉलबैक में क्लोज़() को कॉल करूंगा? – Darren

+1

'ऑनकनेक्शनस्टेट चेंज' रिपोर्ट सफल डिस्कनेक्शन के बाद 'क्लोज़()' को कॉल करता था। – Gyebro

+0

यह जगह पर था, सब कुछ अब और अधिक स्थिर लगता है। धन्यवाद – Darren

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