Невозможно использовать scanBleDevices для сканирования - PullRequest
0 голосов
/ 08 июня 2019

Я впервые попробую библиотеку на kotlin, из-за этого я прочитал, что для первого сканирования мне нужно реализовать ее с implementation "com.polidea.rxandroidble2:rxandroidble:1.10.0", создать RxBleClient и установить параметры сканирования, но, похоже,быть проблема с методом scanBleDevices ().

Я пробовал код, который появляется в описании репозитория и код из примера kotlin.

С кодом из описания, естьтолько ошибка на scanBleDevices

rxBleClient = RxBleClient.create(this)

val scanSubscription = rxBleClient.scanBleDevices(
        new ScanSettings.Builder()
            // .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) // change if needed
            // .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) // change if needed
            .build()
        // add filters if needed
)
    .subscribe(
        {
            // Process scan result here.
        },
        {
            // Handle an error here.
        }
    );

// When done, just dispose.
scanSubscription.dispose();

С кодом из примеров kotlin, также есть ошибка с Observable, которая показывает No type arguments expected for class Observable

private fun scanBleDevices(): Observable<ScanResult> {
        val scanSettings = ScanSettings.Builder()
            .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
            .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
            .build()

        val scanFilter = ScanFilter.Builder()
             //.setDeviceAddress("B4:99:4C:34:DC:8B")
            // add custom filters if needed
            .build()

        return rxBleClient.scanBleDevices(scanSettings, scanFilter)
}

Проблема возникает сМетод scanBleDevices (), который выдает предупреждение, запрашивающее scanSettings и scanFilter, для чего они правильно его использовали:

None of the following functions can be called with the arguments supplied.
 scanBleDevices(ScanSettings!, vararg ScanFilter!) defined in com.polidea.rxandroidble2.RxBleClient
 scanBleDevices(vararg UUID!) defined in com.polidea.rxandroidble2.RxBleClient

1 Ответ

0 голосов
/ 09 июня 2019

Если компилятор жалуется на ScanSettings и ScanFilter, то проверьте пакет этих классов, если вы импортируете их из com.polidea.rxandroidble2 или из android.bluetooth.le (или аналогичного)

Библиотека принимает в этом API только ScanSettings и ScanFilter классы из com.polidea.rxandroidble2 пакета.

...