thestr4ng3r / chiaki

Moved to https://git.sr.ht/~thestr4ng3r/chiaki - Free and Open Source PS4 Remote Play Client
https://git.sr.ht/~thestr4ng3r/chiaki
2.2k stars 368 forks source link

Android TV Support #122

Open duduke opened 4 years ago

duduke commented 4 years ago

Is Android TV, Specifically NVIDIA Shield TV supported?

issue-label-bot[bot] commented 4 years ago

Issue-Label Bot is automatically applying the label feature_request to this issue, with a confidence of 0.58. Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!

Links: app homepage, dashboard and code for this bot.

thestr4ng3r commented 4 years ago

Not yet, but it's high prio for me personally, so expect it soon™

JackFreyer commented 4 years ago

@thestr4ng3r Seeing how the official Remote Play is not supported even on my Sony Bravia TV, I've just checked the source with the intention of doing it by myself, I've done Android TV stuff before. Do you want me to work on it?

thestr4ng3r commented 4 years ago

Of course, if you want to do it, that would be great! Just make sure to follow the code style and patterns (RxJava+LiveData) of the rest of the Kotlin code, make the UI as native as possible using the Leanback library and try to reuse existing ViewModels and other classes whenever possible. You can also send pull requests one step at a time whenever you have a part that works.

JackFreyer commented 4 years ago

OK. All I want to do now is to modify the manifest so it shows on the TV launcher and check if there is are any major problem, apart from the probably fucked UI on the TV screen...

I'm having some build errors, here's the output from Android Studio:

Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Found PythonInterp: C:/Program Files (x86)/Python38-32/python.exe (found suitable version "3.8", minimum required is "3") 
Found PythonInterp: C:/Program Files (x86)/Python38-32/python.exe (found suitable version "3.8", minimum required is "2.7") 
CMake Error at lib/protobuf/CMakeLists.txt:4 (message):
  Could not find protoc

How do I install protocol buffers? All I want is the Android app, I'm not sure if this is necessary at all?

thestr4ng3r commented 4 years ago

It is necessary to generate the nanopb code. You need the protobuf python library to be installed (can be done with pip) and protoc in your PATH when cmake is run. I have no idea what the best way would be to install protoc on Windows, but one way should be to download it from here, put it in some directory and add that to the global PATH: https://github.com/protocolbuffers/protobuf/releases

JackFreyer commented 4 years ago

Well, I got fed up with the build errors, so I've tried just copying the android folder to a new one, removing some stuff from the gradle files so it would compile, then I've grabbed the already compiled .so native libraries from an apk from the releases page and placed them on the jniLibs folder. It worked.

So I've tested replacing the main activity category with android.intent.category.LEANBACK_LAUNCHER and guess what, everything works! The UI is not botched or anything like as I've expected, it just could have some work done for the TV layout.

Another question, is there any (maybe legal) reason you have not ported the python script to obtain the AccountID on java or kotlin so the signin could be done directly on the app? I could work on that too.

thestr4ng3r commented 4 years ago

That sounds great!

The id obtaining is the only step that requires doing network requests to a foreign (Sony) server on the internet, while the rest of the protocol only communicates directly with the console. I try to keep the networking as transparent as possible for Chiaki, so I prefer to keep this part completely outside of the application. In addition, given you don't update your PS4, this is the only part that could potentially be broken by Sony in the future. Maybe I will change my mind at some point since indeed it would be quite convenient, but for now I won't add it. Legally it should be no problem, even if Sony would not approve using their private api.

fpiesche commented 4 years ago

Having just tried Chiaki after sideloading it to an Amazon Fire TV Stick I was pleasantly surprised to find it appears in the Leanback-style launcher and the UI isn't mangled, but it can't actually be fully controlled with the remote control - I can select the Wifi and Menu options but not my PS4 or the Add button. @JackFreyer did you have this experience as well, or does the Bravia have a virtual touchscreen function of some sort?

fpiesche commented 4 years ago

Actually, ignore the above - after an upgrade to a proper Android TV box the UI works fine, but Chiaki doesn't appear in the actual Android TV launcher. I happen to know how to fix that from experiments with the Ouya years ago so I'll see about setting up a dev environment and putting together a PR...

juicypop commented 4 years ago

I'm eager to test your apk once it's finished. I'm using btw a mibox 3, have some hard time to connect my ds4, will try chiaki and a Xbox one controller

DiabloBajo commented 4 years ago

I'm not a developer at all, but an IT professional. I'd love to help where I can. I have an Nvidia shield on the way. Once this works. I'll be replacing 5 fire sticks with these shields or similar! I'm so excited about remote play and as a Linux user, chiaki is a must! Cheers🤘

thestr4ng3r commented 4 years ago

Why would you replace the fire sticks? Those run Android TV too and will most likely support Chiaki just fine.

DiabloBajo commented 4 years ago

They are the older fire sticks and tend to lag a bit. I'll definitely try it on them before swapping them, but I figure the shield will be much quicker.

DiabloBajo commented 4 years ago

So it works on the Nvidia shield. Like @fpiesche said, it doesn't show in the launcher. And I couldn't get the bar at the bottom for the on screen control switch to go away, but very VERY playable!!! I love it

chriskbchan commented 4 years ago

tried today and the app actually works in Shield TV! however there are a couple of issues: 1) cannot turn off on screen button (the bottom menu bar is unreachable) 2) pressing PS button in DS4 controller will quit the app session to Shield’s menu, so I am unable to bring up PS home screen

Brandonv101 commented 4 years ago

Have there been any updates on the Android TV version of the app?

yongbi85 commented 4 years ago

I installed it on nvidia shield tv but using official pad connected to the PS4 (secondary account registered on chiaki and logging on with the pad to main account directly to ps4 as living room and room are next to each other) However is there any way to set full screen and toggle off on screen commands with the nvidia shield remote ? I've been trying but didn't find the solution...