मैं एक श्रृंखला में सभी उपलब्ध ब्लूटूथ डिवाइस खोजने की कोशिश कर रहा हूं। लेकिन मुझे केवल एक डिवाइस मिल रहा है जिसे मैं थ्रेड में रन विधि में उपयोग कर रहा हूं। मैंने इस समस्या के लिए पहले से ही कई लिंक देखे हैं लेकिन इस मुद्दे को हल नहीं कर सके। यहाँ मेरी कोडरेंज में उपलब्ध ब्लूटूथ डिवाइस कैसे खोजें?
public void run() {
if(service != null) {
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
service.registerReceiver(this.bReceiver, filter);
bluetooth.startDiscovery();
}
}
class BluetoothReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Set<BluetoothDevice> pairedDevices = bluetooth.getBondedDevices();
String action = intent.getAction();
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
Log.d(TAG, device.getName());
}
}
if(BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String uuid = intent.getStringExtra(BluetoothDevice.EXTRA_UUID);
int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
Log.d(TAG, device.getName());
}
}
}
अलावा में मैं प्रत्येक पाया डिवाइस के RSSI मूल्य चाहते हैं, लेकिन कृपया वाक्य रचना
लेकिन अगर आप मेरी कोड देखें ... यह आपके जैसे ही है। .. मुझे कोई फर्क नहीं पड़ता है तो मेरा कोड क्यों काम नहीं कर रहा है –
आपके कोड में वास्तव में क्या काम नहीं कर रहा है? पर निर्भर है (...) कहा जा रहा है? –
समस्या यह है कि इस प्रसारण रिसीवर में पहुंचने के बाद एप्लिकेशन को लटका दिया जाता है, यह नहीं पता कि क्यों और अन्य प्रमुख मुद्दे मुझे केवल एक सक्रिय ब्लूटूथ डिवाइस मिलता है, इसके बजाय मुझे सभी उपलब्ध सक्रिय ब्लूटूथ डिवाइस चाहिए ... –