use jmDNS to provide discovery on Android < 16
|Target version:||swap repos with Bluetooth and Bonjour|
Android "Network Service Discovery" adds DNS+SD and mDNS to Android starting in API 16. For older platforms, add jmdns.
purge NSD support, later add mDNS support to FDroid using jmdns
Android's NSD is a nice API, but it turns out its flaky and only supported
on very recent Android versions. So we'll use jmdns to support older
releases and hopefully work better.
broadcast local repo via Bonjour/mDNS to enable auto-discovery
This adds support for registering the local repo with Bonjour/mDNS so that
it is broadcast out to all devices on the local network. This makes it
easy to discover and add local repos on the same wifi.
replace Android NSD browsing with jmdns
Android's NSD is only included in Android >= 16, and seems to be buggy. So
This replaces the NSD code entirely with jmdns, which works on all Android
#2 Updated by pd0x almost 4 years ago
In practice the Android Network Service Discovery is unreliable. There have been a number of bugs since it was introduced in API level 16. At the OpenITP UX Hackathon we observed the underlying NSD system service blocking in a manner that caused apps that were attempting to ask for a handle to the service to block in turn (See Bug #3025).
Implementing the same NSD functionality using jmDNS would give us 1) backwards compatibility to devices < API level 16, 2) the ability to include a repo fingerprint (Feature #2978) in the service registration without sullying the service name 3) a fix for bug #3025
#6 Updated by hans over 3 years ago
- Status changed from Resolved to Closed
- Assignee set to hans