SharpAndroidTV 0.0.1
See the version list below for details.
dotnet add package SharpAndroidTV --version 0.0.1
NuGet\Install-Package SharpAndroidTV -Version 0.0.1
<PackageReference Include="SharpAndroidTV" Version="0.0.1" />
paket add SharpAndroidTV --version 0.0.1
#r "nuget: SharpAndroidTV, 0.0.1"
// Install SharpAndroidTV as a Cake Addin #addin nuget:?package=SharpAndroidTV&version=0.0.1 // Install SharpAndroidTV as a Cake Tool #tool nuget:?package=SharpAndroidTV&version=0.0.1
SharpAndroidTV
Client to control Android TV.
AndroidTVPairingClient
Create the client:
AndroidTVPairingClient tvPairingClient = new AndroidTVPairingClient("192.168.1.90");
Initiate the pairing process:
await tvPairingClient.InitiatePairingAsync();
TV should display a 6 letter pairing code on the screen. Pass it to the pairing client and the pairing client will return a certificate that you should store somewhere safe:
string certificate = await tvPairingClient.CompletePairingAsync("1234AB");
AndroidTVClient
Turn on the TV
To turn on the TV if you know the MAC address:
await AndroidTVClient.TurnOnAsync("192.168.1.90", "FF:FF:FF:FF:FF:FF");
If you don't know the MAC address, but you are running on Windows/MacOS/Linux where your process can access the terminal, run:
await AndroidTVClient.TurnOnAsync("192.168.1.90");
This will attempt to use ARP to resolve the MAC address from the IP address.
Control the TV
To control the TV, create the client and pass the certificate from the AndroidTVPairingClient
:
AndroidTVClient tvClient = new AndroidTVClient("192.168.1.90", certificate);
Send a volume up key:
await tvClient.PressKeyAsync(KeyCodes.KEYCODE_VOLUME_UP, KeyAction.Down);
await tvClient.PressKeyAsync(KeyCodes.KEYCODE_VOLUME_UP, KeyAction.Up);
Open Netflix:
tvClient.StartApplication("https://www.netflix.com/title.*");
Get current TV configuration:
var configuration = tvClient.GetConfiguration();
Credits
This project is based upon the research from here: https://github.com/Aymkdn/assistant-freebox-cloud/wiki/Google-TV-(aka-Android-TV)-Remote-Control-(v2)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- BouncyCastle.Cryptography (>= 2.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.