Сортировка входящих блютуз устройств - PullRequest
0 голосов
/ 31 октября 2018

Каждый раз, когда я сканирую устройства, в списке отображаются одинаковые ~ 10 устройств, повторяющихся в, казалось бы, случайном порядке. Ни одна из предпринятых мною попыток убедиться, что они появятся однажды, не сработала. Есть идеи?

 private final no.nordicsemi.android.support.v18.scanner.ScanCallback mScanCallback = new no.nordicsemi.android.support.v18.scanner.ScanCallback() {
    @Override
    public void onScanResult(int callbackType, ScanResult result) {
        super.onScanResult(callbackType, result);

        Log.i("onScanResult", "device detected");

            device = result.getDevice();
            String deviceName = device.getName();
            String deviceAddress = device.getAddress();

            Log.i(DEVICE, "Scanned device: " + device.toString());
            Log.i(DEVICE, "Scanned device name: " + deviceName);
            Log.i(DEVICE, "Scanned device address: " + deviceAddress);


        deviceShowFormat deviceObj;

//            if(foundDevices.size() == 0){
//                foundDevices.add(new deviceShowFormat(device, deviceName, deviceAddress));
//                BTadapter.notifyDataSetChanged();
//            }
        boolean isThere = false;
        for (int i=0; i<30; i++)
        {
            try {
                deviceObj = foundDevices.get(i);

                Log.i("Sorting1", "" + i);
                if (deviceObj.get_device_address() == deviceAddress){
                    isThere = true;
                }
            } catch(Exception e){}

        }

        if(!isThere){
            foundDevices.add(new deviceShowFormat(device, deviceName, deviceAddress));
            BTadapter.notifyDataSetChanged();

            isThere = false;
        }


    }
};

1 Ответ

0 голосов
/ 31 октября 2018

Теперь я знаю, что я не эксперт по Java или Android Java Java SDK, но это довольно просто, нет? Вы можете создать неупорядоченный набор / словарь и добавить каждое из имен. Если имя есть в списке, не добавляйте его снова. Использование набора лучше для временной сложности. Это будет O (n), чтобы проверить список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...