This is DIAL client written in Android. The DIAL protocol allows TV devices to be discovered and controlled.
The current version will discover both Google TV and ChromeCast devices. The client is a proof of concept for controlling ChromeCast devices using open API's. The current code does not rely on the Google Cast SDK and the OS on the ChromeCast device does not need to be hacked. The ChromeCast device also does not need to have developer options enabled.
After the DIAL servers are discovered and the user selects a particular device in the UI, an attempt is made to connect to the ChromeCast device and play a YouTube video. Most of the ChromeCast-specific logic is contained in MainActivity.onActivityResult. Operations are done via HTTP and Web Sockets. ChromeCast apps use a protocol called RAMP for media playback which is not currently supported by the client.
This holds promise for being to control other aspects of the ChromeCast device using open API's. How the CromeCast device works is now better understood (especially since the low level protocol details aren't documented by Google). It is possible to remotely control the device from a third-party app. There might be other aspects of the device that might be controlled in ways the Google apps don't support. This also shows that it might be possible to develop apps that don't use the cloud based solution of the official Google Cast SDK.
Other apps developed by Entertailion:
- Able Remote for Google TV: The ultimate Google TV remote
- Open Launcher for Google TV: The ultimate Google TV launcher
- Overlay for Google TV: Live TV effects for Google TV
- Overlay News for Google TV: News headlines over live TV
- Video Wall: Wall-to-Wall Youtube videos
- GTV Tasker Plugin: Control your Google TV with Tasker actions