The underlying implementation was not enabling the sensors on a particular sender even though the Enable signature accepts different instances of Sender to enable. Consider the following program: type A struct{} func (a A) Send(ev interface{}) {} type B struct{} func (b B) Send(ev interface{}) {} sensor.Enable(A{}, sensor.Gyroscope, time.Millisecond) sensor.Enable(B{}, sensor.Accelerometer, time.Millisecond) is going to compile but only A will be notified when there are new gyroscope and accelerometer events. In order to improve the misleading APIs, this CL introduces a Notify function that users can register a Sender implementation to listen the changes. If set nil, the sensor package will keep reading the events but will won't notify. sensor.Notify(A{}) sensor.Enable(sensor.Gyroscope, time.Millisecond) sensor.Enable(sensor.Accelerometer, time.Millisecond) Change-Id: I25e43349e4ae682930baa2d32430f46f24b588b7 Reviewed-on: https://go-review.googlesource.com/15650 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
golang.org/x/mobile/exp contains experimental packages for mobile app development.