I recently got a new phone (Moto G4 Plus) and I wanted to play with Gyroscope for roblox development purposes. I have confirmed that the Gyroscope works, but not on roblox.
UserInputService's .GyroscopeEnabled property returns false and :GetDeviceRotation() only gives me the identity matrix.
Is this just an android problem?
Here's the short LocalScript code I have:
repeat wait() until game.Players.LocalPlayer.Character
local userInputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
print(userInputService.GyroscopeEnabled) -- false
runService.Heartbeat:connect(function()
local object, cf = userInputService:GetDeviceRotation()
workspace.CurrentCamera.CFrame = CFrame.new(0, 10, 0) * cf
end)

2 comments
it means your phone doesnt have a gyroscope
If you know your phone actualy has a gyroscope (it might not), then call a wait() to give roblox a little more time to realise it is there.