device detection method update