Sideband/sbapp/services/sidebandservice.py

58 lines
1.5 KiB
Python

import time
import RNS
from sideband.core import SidebandCore
from os import environ
from jnius import autoclass, cast
Context = autoclass('android.content.Context')
class RnsService():
def __init__(self):
pass
def start(self):
pass
def stop(self):
pass
def restart(self):
self.stop()
self.start()
class sidebandservice():
def __init__(self):
self.argument = environ.get('PYTHON_SERVICE_ARGUMENT', '')
self.multicast_lock = None
self.wake_lock = None
self.service = autoclass('org.kivy.android.PythonService').mService
self.app_context = self.service.getApplication().getApplicationContext()
self.wifi_manager = self.app_context.getSystemService(Context.WIFI_SERVICE)
# The returned instance is an android.net.wifi.WifiManager
print("Sideband Service created")
self.take_locks()
self.run()
def take_locks(self):
if self.multicast_lock == None:
self.multicast_lock = self.wifi_manager.createMulticastLock("sideband_service")
if not self.multicast_lock.isHeld():
RNS.log("Taking multicast lock")
self.multicast_lock.acquire()
RNS.log("Took lock")
def release_locks():
if not self.multicast_lock == None and self.multicast_lock.isHeld():
self.multicast_lock.release()
def run(self):
while True:
print("Service ping")
time.sleep(5)
sbs = sidebandservice()