6

लौटाता है मैं ब्लूटूथ लो एनर्जी (बीएलई) का उपयोग कर एंड्रॉइड ऐप के माध्यम से एक Arduino Uno से कनेक्ट करने का प्रयास कर रहा हूं।
मैं Android पर स्टूडियो के विकास कर रहा हूँ, एक सैमसंग गैलेक्सी एस 4 के साथ परीक्षण, और एक Android संस्करण 5.0.1
साथ मैं इस लिंक का पालन: http://www.truiton.com/2015/04/android-bluetooth-low-energy-ble-example/
मैं उपकरणों को स्कैन कर रहा हूँ और जब मैं एक मिल गया है, मैं चाहते हैं यह करने के लिए कनेक्ट करने से पहले यह UUID है मिलता है, यकीन है कि यह डिवाइस का सही प्रकार है बनाने के लिए:एंड्रॉइड डिवाइस .getUuids शून्य

mScanCallback = new ScanCallback() { 
     @Override 
     @TargetApi(21) 
     public void onScanResult(int callbackType, ScanResult result) { 
      BluetoothDevice btDevice = result.getDevice(); 
      ParcelUuid[] uuids = btDevice.getUuids(); //<-- this is always null!! :(

      Log.d(TAG, ""+btDevice.fetchUuidsWithSdp()); //<-- prints true. 
      Log.d(TAG, "result : " + result.toString()); //<-- prints a bunch of relevant info that contains the UUID I want to check. 
      Log.d(TAG, "uuids : " + uuids); //<-- prints null. 
      /* 
      for (ParcelUuid u : uuids) { 
       //Compare with the UUID of my device, and connect if ok. 
      } 
      */ 
     } 

हालांकि, btDevice.getUuids(); हमेशा त्रुटि के साथ शून्य वापस आ रहा है ...
स्कैन किए गए डिवाइस का यूयूआईडी कैसे प्राप्त कर सकता हूं?
परिणाम के साथ regexp का उपयोग करने के लिए एक ब्रूट फोर्स विधि का उपयोग करना होगा। मैं जो चाहता हूं उसे पकड़ने के लिए (लेकिन) बेहतर तरीका होना चाहिए?
धन्यवाद

उत्तर

0

जावा डॉक्टर से:

सार्वजनिक ParcelUuid [] getUuids()

जोड़ा रिमोट डिवाइस के एपीआई स्तर 15 रिटर्न समर्थित सुविधाओं (UUIDs) में।

यह विधि रिमोट डिवाइस से यूयूआईडी को पुनर्प्राप्त करने के लिए सेवा खोज प्रक्रिया शुरू नहीं करती है। इसके बजाए, सेवा यूयूआईडी की स्थानीय कैश की गई प्रतिलिपि वापस कर दी गई है।

अगर ताजा यूयूआईडी वांछित हैं तो fetchUuidsWithSdp() का उपयोग करें।

BLUETOOTH की आवश्यकता है।

रिटर्न रिमोट डिवाइस की समर्थित सुविधाओं (UUIDs), या त्रुटि पर अशक्त

आपका ScanResult शायद एक त्रुटि

+1

मैंने प्रलेखन पढ़ा, मैंने कोड भी पढ़ा (यह खुला स्रोत है)। मुझे यकीन है कि यह एक त्रुटि है, लेकिन यह कहीं भी मुद्रित नहीं होता है ... BuetoothObject.java कोड में वे केवल एक निश्चित प्रकार की त्रुटि लॉग करते हैं, अन्य कोई संदेश के साथ शून्य वापस आते हैं ... – codejedi14

6
BluetoothLeScanner scanner = mBluetoothAdapter.getBluetoothLeScanner(); 
// scan for devices 
scanner.startScan(new ScanCallback() { 
@TargetApi(Build.VERSION_CODES.LOLLIPOP) 
@Override 
public void onScanResult(int callbackType, ScanResult result) 
    { 
     List<ParcelUuid> uuids = result.getScanRecord().getServiceUuids(); 
    } 
} 

इस Android में 6.0.1

मेरे लिए काम किया है
संबंधित मुद्दे