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:05] – [main.py] 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 | ||
Ligne 68: | 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.1604307937.txt.gz · Dernière modification : 2020/11/02 09:05 de serge