Input.gyro.attitude returns zero value

Hi people, Recently I’ve been working on a project that works with gyroscope. Firs everything was fine until now my gyro.attitude returns zero like this:

I have tested it with unity remote and depoyed on my Nexus 5 itself, both return same error and so program doesn’t work. Then I tried to deploy on my friend’s phone and it worked again, but after some deployment my friend’s phone failed too. Now we tested completely new projects in two different PCs, no result. I’ve formatted my Nexus 5 even changed OS to Lollipop and Marshmallow, no luck. I believe it is a hardware issue, because it is still working on any new phone… I have checked another programs that are using gyro and they worked on my phone. I’m still struggling to understand the origin of the problem. Anyone can help me from Unity? Or anyone who faced the same problem? My simplest code is like following:

using UnityEngine;
using System.Collections;

public class gyro : MonoBehaviour {

    Gyroscope gyr;

	// Use this for initialization
	void Start () {
        gyr = Input.gyro;
        if (SystemInfo.supportsGyroscope)
        {
            gyr.enabled = true;
            Debug.LogWarning("Gyro Enabled");
        }
	
	}
	
	// Update is called once per frame
	void Update () {
        Debug.Log(gyr.attitude);
	}
}

And Debug.Log returns something like this:

(0.0, 0.0, 0.0, 0.0)

UnityEngine.Debug:Log(Object)

gyro:Update() (at Assets/gyro.cs:21)

I’m having the same issue. It looks like this will be fixed in 5.3.

Are you sure you enabled the gyro?

Input.gyro.enabled = true;