Pyairmore
PyAirmore is a Python client library for Android Airmore server, which helps the developers to take programmatic actions on Android.
Install / Use
/learn @erayerdin/PyairmoreREADME
Warning
I don't have time to update this project. I'm looking for a maintainer. If you think you can tackle it, hit me on Telegram.
Otherwise, you can think this project is quite much abandoned.
PyAirmore
| | Build | Coverage |
|-------------|-------|----------|
| master | |
|
| development |
|
|
PyAirmore is a Airmore client library for Android Airmore server. You can get information from Airmore server on your Android.
Simple Example
At first, you need to know your device's IPv4 address, which you can easily find out by simply opening your Airmore application on Android, click options (top-right, triple vertical dots) button, press "Get IP".
Then, you start coding:
from ipaddress import IPv4Address
from pyairmore.request import AirmoreSession # import session
device_ip = IPv4Address("your ip address") # need to put your ip
session = AirmoreSession(device_ip) # also you can put your port as int
# airmore's port default is 2333
# you can check if your airmore server is running
# you better do it before doing anything on your device
session.is_server_running # True
# and before doing anything, you must request access from your device
# you better turn on your airmore app on your device and watch it
session.request_authorization() # True if accepted, False if denied
# when you request authorization, airmore app on your device will
# provide a dialogue to accept the authorization, ensure to accept
Now that we created an authorized session, we can now create a Service.
You can use services to access many functionalities of your device. For the
sake of simplicity, we will use a service called DeviceService.
# assuming we have done above
from pyairmore.service.device import DeviceService
device = DeviceService(session)
# all services initializes with a session instance
# you can once more do `Session::is_server_running` and
# `Session::request_authorization` just in case
details = device.fetch_device_details()
# Now we can access many details about out device.
details.power # 0.74
details.device_name # "My device"
details.is_root # True, bcoz real men use rooted device
details.imei # muhahaha
details.call_history_count # 666
# so on and so forth
Documentation
You can get latest documentation from here
and you can also check out development branch's documentation here,
which is supposed to have next release features.
Contribution
Please refer to contribution guide before contributing.
You can, then, quickly contribute by cloning the project, opening it up with your favorite IDE or text editor which supports TODOs and check todos for needs, or you can also check the issues.
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
