By default, the Xbox One bluetooth controller pairs just fine, but the mappings don't work.
The first thing you need to do is get a Windows PC, install the Xbox Accessories app and upgrade the firmware of your controller. You can do the same from an Xbox One console if you have it. Now it will sync properly with your Android device, but the key mappings will be completely wrong.
One way to fix it (if you have root) is to download the attachment here:
https://code.google.com/p/android/issues/detail?id=219859
And place it in /system/usr/keylayout/
I installed " Minimal ADB and Fastboot " to be able do that.
Enable developer mode on your Android device.
Then enable USB debugging.
At some point when you are doing the next steps,a popup requesting you to allow a device to debug should show up. Let it.
Steps
adb devices
adb shell
su
mount -o rw,remount,rw /system
cp /path/to/my/file /system/usr/keylayout/
chmod 644 /system/usr/keylayout/Vendor_045e_Product_02e0.kl
reboot
This was the only way I was able to get proper permissions to copy.
ES Explorer root couldn't, neither could Total Commander root.
This worked 100% for me on the Nvidia Shield TV. Tested it myself with Gamestream, Kodi (SPMC) and a couple other games.
I guess my biggest question is, why? Why not just use an nvidia controller? It comes with the shield