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