76 lines
2.9 KiB
Markdown
76 lines
2.9 KiB
Markdown
in vscode, create a new android app that will trigger specific function on physical key press. we should be able to map the specific action in the android OS.
|
|
the action will listen on on the microphone and will stream the audio to a server and will show the server responses on the screen
|
|
--
|
|
you're in a shell console at a root folder of a new software project. we use vscode-server.
|
|
let's create a mobile app (prioritize android, and plan to also support iOS) which will send the audio input to tts llm
|
|
plan for the following extesion features in the future:
|
|
- ability to listen in the background for a wake word and send the following voice command
|
|
- ability to listen on hardware button press, or O buttton hold or other android fast access shortcut intent
|
|
|
|
|
|
#
|
|
>abc@8625820ec90d:/workspace/repos/git.d-popov.com/ai-kevin/agent-mobile$ npx react-native init artimobile
|
|
Run instructions for Android:
|
|
• Have an Android emulator running (quickest way to get started), or a device connected.
|
|
• cd "/workspace/repos/git.d-popov.com/ai-kevin/agent-mobile/artimobile" && npx react-native run-android
|
|
|
|
info 💡 Tip: Make sure that you have set up your development environment correctly, by running npx react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor
|
|
|
|
|
|
#:host
|
|
conda search openjdk
|
|
conda install -c conda-forge openjdk=17
|
|
java -version
|
|
|
|
#:host
|
|
sudo apt-get install adb
|
|
|
|
# : emu androidusr
|
|
cd /home/androidusr/tmp && npx react-native run-android
|
|
# RUN ln -s ${ANDROID_HOME}/emulator/emulator /usr/bin/
|
|
/emulator/emulator -list-avds
|
|
emulator -avd samsung_galaxy_s10_14.0
|
|
# update jdk
|
|
FROM budtmo/docker-android:emulator_11.0_v2.0
|
|
RUN apt-get update && \
|
|
apt-get install -y openjdk-17-jdk && \
|
|
apt-get clean;
|
|
# Set JAVA_HOME environment variable to Java 17
|
|
ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64
|
|
|
|
# https://jdk.java.net/
|
|
# or https://reactnative.dev/docs/environment-setup?os=linux&platform=android&guide=native#jdk-studio
|
|
wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz
|
|
cd /home/androidusr/download && tar -xzf openjdk-21.0.2_linux-x64_bin.tar.gz -C /home/androidusr/jdk
|
|
export JAVA_HOME=/home/androidusr/jdk/jdk-21.0.2
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
source ~/.bashrc
|
|
# 17 once
|
|
cd ~/download
|
|
tar -xzf jdk-17.0.8_linux-x64_bin.tar.gz -C /home/androidusr/download
|
|
|
|
# run
|
|
export JAVA_HOME=/home/androidusr/download/jdk-17.0.8
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
source ~/.bashrc
|
|
#cd /opt/android/tools/bin
|
|
#yes | ./sdkmanager --licenses
|
|
|
|
cd /home/androidusr/tmp
|
|
npx react-native run-android
|
|
npx react-native start
|
|
|
|
|
|
# install voice on dev env (emulator)
|
|
npm install @react-native-voice/voice
|
|
react-native link @react-native-voice/voice
|
|
|
|
|
|
#
|
|
|
|
The SDK directory is not writable (/opt/android) >> sudo chown -R androidusr:androidusr /opt/android
|
|
|
|
# release build
|
|
cd ~/tmp/android
|
|
./gradlew assembleRelease
|