Connect sdk is not discovering tv devices other then OPPO a5s

46 Views Asked by At

This is the code snippet I tried to find devices which is working fine on oppo a5s

discoveryManager = DiscoveryManager.getInstance()
        listener = object : DiscoveryManagerListener {
            override fun onDeviceAdded(manager: DiscoveryManager?, device: ConnectableDevice?) {
                errorLog("onDeviceAdded")
                device?.let {
                        if (!arrList.contains(DeviceModel(it.friendlyName, it.ipAddress))) {
                            arrList.add(DeviceModel(it.friendlyName, it.ipAddress))
                            mutableList.value = arrList
                        }

                    onFound.invoke(device)
                }

            }

            override fun onDeviceUpdated(
                manager: DiscoveryManager?,
                device: ConnectableDevice?
            ) {
                errorLog("onDeviceUpdated")
                device?.let {

                    if (!arrList.contains(DeviceModel(it.friendlyName, it.ipAddress))) {
                        arrList.add(DeviceModel(it.friendlyName, it.ipAddress))
                        mutableList.value = arrList
                    }

                }
            }

            override fun onDeviceRemoved(
                manager: DiscoveryManager?,
                device: ConnectableDevice?
            ) {
                errorLog("onDeviceRemoved")
                device?.friendlyName?.let { name ->
                    device.ipAddress?.let { ip ->
                        arrList.remove(DeviceModel(name, ip))
                        mutableList.value = arrList
                    }
                }


            }

            override fun onDiscoveryFailed(
                manager: DiscoveryManager?,
                error: ServiceCommandError?
            ) {
                onFailed.invoke()
                stopScan()
                errorLog("Discovery failed")
            }

        }
        discoveryManager?.addListener(listener)
        discoveryManager?.pairingLevel = DiscoveryManager.PairingLevel.ON
        discoveryManager?.registerDeviceService(
            DLNAService::class.java,
            SSDPDiscoveryProvider::class.java
        )
        viewModelScope.launch(IO) {
            discoveryManager?.start()
        } 

but this same code is not working on any other device. kindly guide me how to deal with it

discoveryManager?.registerDeviceService(
            DLNAService::class.java,
            SSDPDiscoveryProvider::class.java
        )

if I change service type other then DLNAService::class.java it even doesn't finds devices on oppo a5s

0

There are 0 best solutions below