Compass ------- The following example is an extract from the Compass app as provided in the Kivy `examples/android/compass `__ folder: .. code-block:: python # ... imports Hardware = autoclass('org.renpy.android.Hardware') class CompassApp(App): needle_angle = NumericProperty(0) def build(self): self._anim = None Hardware.magneticFieldSensorEnable(True) Clock.schedule_interval(self.update_compass, 1 / 10.) def update_compass(self, *args): # read the magnetic sensor from the Hardware class (x, y, z) = Hardware.magneticFieldSensorReading() # calculate the angle needle_angle = Vector(x , y).angle((0, 1)) + 90. # animate the needle if self._anim: self._anim.stop(self) self._anim = Animation(needle_angle=needle_angle, d=.2, t='out_quad') self._anim.start(self) def on_pause(self): # when you are going on pause, don't forget to stop the sensor Hardware.magneticFieldSensorEnable(False) return True def on_resume(self): # reactivate the sensor when you are back to the app Hardware.magneticFieldSensorEnable(True) if __name__ == '__main__': CompassApp().run() If you compile this app, you will get an APK which outputs the following screen: .. figure:: Screenshot_Kivy_Kompass.png :width: 100% :scale: 60% :figwidth: 80% :alt: Screenshot Kivy Compass Screenshot of the Kivy Compass App (Source of the Compass Windrose: `Wikipedia `__)