mirror of
https://github.com/markqvist/Sideband.git
synced 2025-12-01 20:54:53 -05:00
Use local version of able
This commit is contained in:
parent
2e44d49d6b
commit
9b6a51a03e
67 changed files with 5305 additions and 0 deletions
29
libs/able/examples/service_scan/buildozer.spec
Normal file
29
libs/able/examples/service_scan/buildozer.spec
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
[app]
|
||||
title = BLE scan dev service
|
||||
version = 1.1
|
||||
package.name = scanservice
|
||||
package.domain = test.able
|
||||
source.dir = .
|
||||
source.include_exts = py,png,jpg,kv,atlas
|
||||
|
||||
android.permissions =
|
||||
FOREGROUND_SERVICE,
|
||||
BLUETOOTH,
|
||||
BLUETOOTH_ADMIN,
|
||||
BLUETOOTH_SCAN,
|
||||
BLUETOOTH_CONNECT,
|
||||
BLUETOOTH_ADVERTISE,
|
||||
ACCESS_FINE_LOCATION
|
||||
|
||||
requirements = kivy==2.1.0,python3,able_recipe
|
||||
services = Able:service.py:foreground
|
||||
|
||||
android.accept_sdk_license = True
|
||||
|
||||
# android.api = 31
|
||||
# android.minapi = 31
|
||||
|
||||
[buildozer]
|
||||
warn_on_root = 1
|
||||
# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
|
||||
log_level = 2
|
||||
48
libs/able/examples/service_scan/main.py
Normal file
48
libs/able/examples/service_scan/main.py
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
"""Start BLE devices scaning service."""
|
||||
from able import (
|
||||
BluetoothDispatcher,
|
||||
require_bluetooth_enabled,
|
||||
)
|
||||
from jnius import autoclass
|
||||
from kivy.app import App
|
||||
from kivy.lang import Builder
|
||||
|
||||
|
||||
kv = """
|
||||
BoxLayout:
|
||||
Button:
|
||||
text: 'Start service'
|
||||
on_press: app.ble_dispatcher.start_service()
|
||||
Button:
|
||||
text: 'Stop service'
|
||||
on_press: app.ble_dispatcher.stop_service()
|
||||
"""
|
||||
|
||||
|
||||
class Dispatcher(BluetoothDispatcher):
|
||||
@property
|
||||
def service(self):
|
||||
return autoclass("test.able.scanservice.ServiceAble")
|
||||
|
||||
@property
|
||||
def activity(self):
|
||||
return autoclass("org.kivy.android.PythonActivity").mActivity
|
||||
|
||||
# Need to turn on the adapter and obtain permissions, before service is started
|
||||
@require_bluetooth_enabled
|
||||
def start_service(self):
|
||||
self.service.start(self.activity, "")
|
||||
App.get_running_app().stop() # Can close the app, service will continue to run
|
||||
|
||||
def stop_service(self):
|
||||
self.service.stop(self.activity)
|
||||
|
||||
|
||||
class ServiceApp(App):
|
||||
def build(self):
|
||||
self.ble_dispatcher = Dispatcher()
|
||||
return Builder.load_string(kv)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
ServiceApp().run()
|
||||
27
libs/able/examples/service_scan/service.py
Normal file
27
libs/able/examples/service_scan/service.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
"""Service to run BLE scan for 60 seconds,
|
||||
and log each `on_device` event.
|
||||
"""
|
||||
import time
|
||||
|
||||
from able import BluetoothDispatcher
|
||||
from kivy.logger import Logger
|
||||
|
||||
|
||||
class BLE(BluetoothDispatcher):
|
||||
def on_device(self, device, rssi, advertisement):
|
||||
title = device.getName() or device.getAddress()
|
||||
Logger.info("BLE Device found: %s", title)
|
||||
|
||||
def on_error(self, msg):
|
||||
Logger.error("BLE Error %s", msg)
|
||||
|
||||
|
||||
def main():
|
||||
ble = BLE()
|
||||
ble.start_scan()
|
||||
time.sleep(60)
|
||||
ble.stop_scan()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue