/PainlessJ

Primary LanguageJavaMIT LicenseMIT

Just out of curiosity and to see if it is possible I wrote a small app for Android that can connect to a painlessMesh network and act like a node. So far the app can connect, request routing info (NODE_SYNC_REQUEST) and send single (SINGLE) and broadcast (BROADCAST) messages. Restrictions:

  • Not supported are (TIME_DELAY), (TIME_SYNC) and (NODE_SYNC_REPLY).
  • The app is connecting to the closest painlessMesh AP. Due to restrictions of Android it can not have AP and STA mode running in parallel.

The app is published on Google Play, on apkFiles.com and on F-Droid The source code is available on Gitlab.
Website with more information: painlessMesh and Android

  • The app is 100% open source and has no ads. (MIT license)
  • The app asks for the user permission to access location because since Android > V6 requires permission from the user for location service to scan WiFi networks. Makes no sense, but that's how it is :(

Some screenshots:
First start, app requesting permission:
first_start
Settings main screen:
settings
Credentials settings:
credentialscredentials
Setup predefined messages:
pre-defined-messagespre-defined-messagespre-defined-messages
Connected, receiving messages, possible to send predefined messages as broadcast from buttons at buttom:
connected
Sending messages, first select of nodeId:
send_select_node
Sending messages, type message or select from predefined messages:
send_enter_msgsend_choose_msg
Display of received messages can be filter by nodeID:
filter_msg