A method of performing a channel scan based on mobility information characterised by comprising, by a processor (514; 720) of a device: determining a mobility state of the device based on time-of-flight information by: sending, by a communication interface of the device, a first probe to an access point at a first time; receiving, by the communication interface, a first acknowledgement to the first probe; calculating a first time-of-flight based on an elapsed period between sending the first probe and receiving the first acknowledgement; sending, by the communication interface, a second probe to the access point at a second time later than the first time; receiving, by the communication interface, a second acknowledgement to the second probe; calculating a second time-of-flight based on an elapsed period between sending the second probe and receiving the second acknowledgement; and determining the mobility state based on the first time-of-flight and the second time-of-flight; wherein determining the mobility state comprises determining whether the device is mobile or static; and: determining a directional heading of the mobile device relative to the access point, wherein the directional heading indicates whether the device is moving towards or away from the access point, based on whether a second time-of-flight is increasing or decreasing relative to a first time-of-flight, determining if the device is moving towards or away from the access point; determining whether to perform a channel scan based on the determined mobility state if it is determined that the device is moving away from the access point; and performing a scanning operation in response to a determination to perform a channel scan. determining a mobility state of the device based on time-of-flight information by: sending, by a communication interface of the device, a first probe to an access point at a first time; receiving, by the communication interface, a first acknowledgement to the first probe; calculating a first time-of-flight based on an elapsed period between sending the first probe and receiving the first acknowledgement; sending, by the communication interface, a second probe to the access point at a second time later than the first time; receiving, by the communication interface, a second acknowledgement to the second probe; calculating a second time-of-flight based on an elapsed period between sending the second probe and receiving the second acknowledgement; and determining the mobility state based on the first time-of-flight and the second time-of-flight; sending, by a communication interface of the device, a first probe to an access point at a first time; receiving, by the communication interface, a first acknowledgement to the first probe; calculating a first time-of-flight based on an elapsed period between sending the first probe and receiving the first acknowledgement; sending, by the communication interface, a second probe to the access point at a second time later than the first time; receiving, by the communication interface, a second acknowledgement to the second probe; calculating a second time-of-flight based on an elapsed period between sending the second probe and receiving the second acknowledgement; and determining the mobility state based on the first time-of-flight and the second time-of-flight; wherein determining the mobility state comprises determining whether the device is mobile or static; determining a directional heading of the mobile device relative to the access point, wherein the directional heading indicates whether the device is moving towards or away from the access point, based on whether a second time-of-flight is increasing or decreasing relative to a first time-of-flight, determining if the device is moving towards or away from the access point; determining whether to perform a channel scan based on the determined mobility state if it is determined that the device is moving away from the access point; and performing a scanning operation in response to a determination to perform a channel scan.