Here is an Android client to use so as to drive the robot by sending to it HTTP requests.
Indeed the Android device and the robot's server should be in the same network: the server must be reachable by the Android device of course.
The app may embed also a Snips.ai-based assistant so as to drive the robot in a more elegant way.
We can talk to the assistant (which uses ASR and NLU) so as to make the robot move.
With the Android Studio project, you can build this full version of the app using the full Gradle flavor. If you are looking for only the app without assistant (far more lighter), you should build the app using the light Gradle flavor.
If you want to use this assistant, you must have a Tapster2client folder in the external storage of your device. You can also modify this path inside the app's settings. In this folder, you should place another folder with the assets of the assistant. These assets are available here.
Install the APK
You can install the Android APK in the device with the following command.
adb install bin/VERSION/APK.apk
VERSION here is the version of the app, and APK is the name of the file you want to use.
There is only one APK without the assistant. If you need to the full app, you have to build it using Android Studio. Indeed the weight of the full app is incredibly high (200MB) and cannot be uploaded through GitHub.
Build the app from sources
You can build the application from the sources available in tapsterbot_android. You need Android Studio and Gradle to build them to an APK.
The versions in use for the project are :
- Android Studio 3.0.1
- Gradle 4.1
- Build tools 26.0.2
- Compile SDK version API27
- JRE 1.8.0
- JVM OpenJDK 64bits
- Snips for Android 0.52.7
Customize the app
You can customize the application for your needs. The app embeds the ACRA library which provides mail-sending feature when the app crashes. You can define the email to send the crash reports in the Tapster2ClientApp.kt file, in @AcraMailSender tag. Some features can also be disabled or enabled. Feel free to change the true/false values in the features.properties in assets folder.
About the assistant
This Android app embeds an assistant, based on Snips.ai. This assistant provides a new User eXperience with the possibility to make the user talk to the app. Thanks to the assistant, the app catches the user's words, parses them and makes a match with intents. Then the appropriate request is sent to the robot's server. This way to do brings fun and is cool (to my mind). Snips is an off-the-grid solution, and did not use any third-party or cloud solution, and is totally offline. All the needed things are downloaded in the APK and also in this repository (assets you should copy into your phone). Thus Snips is respectful, and does not spy your private life, but the final APK is quite heavy (the price for privacy?).