aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-android/README.md
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-10-03 09:03:34 +0200
committerChristophe Besson <cbesson@gmail.com>2026-10-03 14:24:54 +0200
commit57758895bc7b0f7f21497194e81172f43d634852 (patch)
treea4a3c71f9aafbc65199e140b7111ee04163fa295 /packages/meshbay-android/README.md
parentd8f5005ba2c9a249ce5ce8976d9c3754a3a7458e (diff)
downloadmeshbay-57758895bc7b0f7f21497194e81172f43d634852.tar.gz
feat(android): casting through a LAN relay and the platform cast SDK
A port of cast-relay.js (backlog also bounded in bytes), discovery and control with the default media receiver, relay calls kept in order, and a foreground service plus a WebView kept visible so a cast survives the screen going off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-android/README.md')
-rw-r--r--packages/meshbay-android/README.md12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/meshbay-android/README.md b/packages/meshbay-android/README.md
index 859cf00..68f6dad 100644
--- a/packages/meshbay-android/README.md
+++ b/packages/meshbay-android/README.md
@@ -18,6 +18,14 @@ Settings (a Storage Access Framework tree, as `<name>.part` until complete) or
the system Downloads collection (a pending entry until complete) — and the
page holds an opaque id, never a URI. Uploads come through the system picker.
+Casting: the page pushes the decrypted stream to a local HTTP relay (a port of
+the desktop's `cast-relay.js`, bound to the Wi-Fi address only); receivers are
+found and driven through the platform cast SDK with the default media receiver.
+While a cast runs, a media-playback foreground service holds the CPU and the
+Wi-Fi, and the WebView is kept reported visible — without that, Chromium
+freezes the page 60 s after the screen goes off. Where play services are
+absent, the page is offered no cast at all.
+
```bash
# needs JDK 17+ and an Android SDK (ANDROID_HOME, or sdk.dir in local.properties)
./gradlew assembleDebug # app/build/outputs/apk/debug/app-debug.apk
@@ -27,5 +35,5 @@ page holds an opaque id, never a URI. Uploads come through the system picker.
The security contract is also pinned from the Python suite by reading this
source: `packages/meshbay-hub/tests/test_android_shell.py`.
-Not built yet: casting, phone-specific behaviour (back button, network
-handover, keeping a transfer alive with the screen off), signed releases.
+Not built yet: phone-specific behaviour (back button, network handover,
+keeping a download alive with the screen off), signed releases.