start Browser
Binds the embedded server and opens the browser dashboard. The SDK never does this on its own -- initialize only prepares capture/storage, so nothing is reachable over the network until a host calls this (or startBrowserAsync) explicitly, typically from a debug menu action, or unconditionally from onCreate if that suits the host.
A suspend function, safe to call from any dispatcher including Main -- the underlying bind loop does blocking socket probes across StartRequest.portRange internally, and that work is already moved off the caller's dispatcher, so calling this from lifecycleScope.launch { } on the main thread will not ANR.
StartRequest.bindingMode decides loopback-vs-LAN for this call; there is currently no DevConsoleConfig value that provides a default for it -- see the KDoc on io.devconsole.api.BindingMode and io.devconsole.api.BrowserBinding for the full story on why a BrowserBinding field exists on DevConsoleConfig.browserConfig but doesn't drive this call. The default StartRequest() binds loopback, which is the safe choice -- see docs/THREAT_MODEL.md at the repository root before ever passing bindingMode = BindingMode.LAN.
Return
a StartResult -- StartResult.Started carries the bound io.devconsole.api.BrowserEndpoint and the session io.devconsole.api.AccessInfo (the connect URL/code); every other variant is a reason it didn't start (see StartResult's KDoc for what each one means and whether it's retryable).
Parameters
binding mode and port range for this start attempt. Defaults to loopback on 8080..8099.