kivy_android_service
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| kivy_android_service [2020/11/02 09:03] – [Explications] serge | kivy_android_service [2020/11/02 12:53] (Version actuelle) – [Kivy: Android Service] serge | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| <WRAP center round box 60% centeralign> | <WRAP center round box 60% centeralign> | ||
| **{{tagpage> | **{{tagpage> | ||
| - | **[[http:// | + | **[[http:// |
| </ | </ | ||
| <WRAP center round box 40% centeralign> | <WRAP center round box 40% centeralign> | ||
| Ligne 31: | Ligne 31: | ||
| </ | </ | ||
| - | =====Extrait du code===== | + | =====Kivy Accelerometer Service OSC===== |
| - | ====buildozer.spec==== | + | |
| + | ====Sources sur GitHub==== | ||
| + | * **[[https:// | ||
| + | ===*.apk=== | ||
| + | Dans le dossier bin | ||
| + | |||
| + | ===TODO=== | ||
| + | Si il n'y a pas d' | ||
| + | |||
| + | ====Extrait du code pour le service==== | ||
| + | La communication entre main.py et service.py se fait en OSC, c'est très rapide, il n'y a aucune latence. | ||
| + | Il n'est pas possible de lancer service.py avec des arguments, ni d' | ||
| + | |||
| + | Pour l'OSC, voir [[kivy_oscpy|Kivy: | ||
| + | |||
| + | === buildozer.spec === | ||
| + | [[https:// | ||
| <code python> | <code python> | ||
| Ligne 46: | Ligne 62: | ||
| </ | </ | ||
| - | ====main.py==== | + | ===main.py=== |
| + | [[https:// | ||
| <code python> | <code python> | ||
| from jnius import autoclass | from jnius import autoclass | ||
| """ | """ | ||
| Dans buildozer.spec | Dans buildozer.spec | ||
| - | # (str) Title of your application | + | package.name = accelerometer |
| - | title = Kivy service OSC demo | + | |
| - | # (str) Package name | + | |
| - | package.name = oscservice | + | |
| - | # (str) Package domain (needed for android/ios packaging) | + | |
| package.domain = org.kivy | package.domain = org.kivy | ||
| services = Pong: | services = Pong: | ||
| Ligne 72: | Ligne 86: | ||
| SERVICE_NAME = ' | SERVICE_NAME = ' | ||
| print(" | print(" | ||
| - | </ | ||
| - | ====service.py==== | + | ..... |
| - | <code python> | + | |
| + | class AccelerometerApp(App): | ||
| + | |||
| + | ... | ||
| + | |||
| + | def start_service(self): | ||
| + | if ANDROID: | ||
| + | self.service | ||
| + | self.m_activity | ||
| + | argument | ||
| + | self.service.start(self.m_activity, | ||
| + | |||
| + | ... | ||
| + | |||
| + | def do_quit(self): | ||
| + | if ANDROID: | ||
| + | self.service.stop(self.m_activity) | ||
| + | self.service | ||
| + | else: | ||
| + | self.client.send_message(b'/ | ||
| + | | ||
| + | AccelerometerApp.get_running_app().stop() | ||
| </ | </ | ||
| + | | ||
| + | ===service.py=== | ||
| + | [[https:// | ||
| <code python> | <code python> | ||
| + | class AccelerometerService: | ||
| - | </ | + | def __init__(self): |
| - | <code python> | + | ... |
| + | self.init_osc() | ||
| + | self.sensor_init() | ||
| + | |||
| + | ... | ||
| + | |||
| + | def init_osc(self): | ||
| + | """ | ||
| + | de la même machine, donc il faut un client. | ||
| + | """ | ||
| + | self.server = OSCThreadServer() | ||
| + | self.server.listen(' | ||
| + | # Les callbacks du serveur | ||
| + | self.server.bind(b'/ | ||
| + | self.server.bind(b'/ | ||
| + | self.server.bind(b'/ | ||
| + | # Un simple client | ||
| + | self.client = OSCClient(b' | ||
| + | |||
| + | ... | ||
| + | |||
| + | def run(self): | ||
| + | while self.loop: | ||
| + | self.get_acceleration() | ||
| + | sleep(0.02) | ||
| + | |||
| + | if __name__ == ' | ||
| + | |||
| + | ACCELEROMETER = AccelerometerService() | ||
| + | ACCELEROMETER.run() | ||
| </ | </ | ||
| - | =====Kivy Accelerometer Service OSC===== | ||
| - | ====Sources sur GitHub==== | ||
| - | * **[[https:// | ||
| - | ===*.apk=== | ||
| - | Dans le dossier bin | ||
| - | ===TODO=== | ||
| - | Si il n'y a pas d' | ||
| =====Un projet plus complet===== | =====Un projet plus complet===== | ||
kivy_android_service.1604307803.txt.gz · Dernière modification : de serge
