Returns inconsistent values from Forms and Essentials.
Xamarin.Forms.Device.Idiom and Xamarin.Essentials.DeviceInfo.Idiom behave in same way.
Xamarin.Forms.Device.Idiom returns TargetIdiom.Phone
Xamarin.Essentials.DeviceInfo.Idiom returns DeviceIdiom.TV
I have modified Sample Xamarin.Essentials project to compare Essentials to Forms.

My device return CurrentModeType = 12 which means CurrentModeType.HasFlag(UiMode.TypeTelevision); will returns true.
Seems like this is a bug in the phone ourselves. Not sure if there is anything we can do based on your screenshot. https://stackoverflow.com/questions/27138838/how-can-i-check-if-an-app-is-running-on-an-android-tv
Technically we could check if there is a touchscreen..... that may be the fix.
Actually, i think instead of "hasflag" it needs to be a direct comparison
I believe that device is outputting that it is multiple things: https://docs.microsoft.com/en-us/dotnet/api/android.content.res.uimode?view=xamarin-android-sdk-9 as you can see here Television's enum is 4
Can you see what other types it is reporting that it is?
oh nm, i found it.
I think that checking enum UiMode with HasFlag is wrong. We should check it using Equals() or == https://docs.microsoft.com/en-us/dotnet/api/android.content.res.uimode?view=xamarin-android-sdk-9. I made simple app to prove my point. For example: Checking UIMode = 6 (Watch) will give you true on TypeDesk, TypeTelevision, TypeWatch, NightUndefined and TypeUndefined.

Checking for UIMode = 12(some Xiaomi wierd phone) from this issue will give you true on TypeTelevision and NightUndefined and TypeUndefined.

We should change checking enum from HasFlag() to equality check, that will give us unequivocal results. That should be also fixed in Xamarin.Forms code.
From what i tested, all my phones are type 1, TypeNormal