[Q] Interrupt shell after execution. - Java for Android App Development

Hi,
I have released an app for screen recording, Screen Recorder
since am new here, am not able to post as link. play.google.com/store/apps/details?id=vee.screen.recorder
which uses the native screen recording API
I have a problem with stopping screen recording, How to interrupt the executed command, and exit.
How to find the screen recorder binaries and embed in my app, to make it avail for all users.
Note : this app will always be remain free & no ads will be added.

VenomVendor said:
I have a problem with stopping screen recording, How to interrupt the executed command, and exit.
Click to expand...
Click to collapse
What's about sending Ctrl + C to the process?

nikwen said:
What's about sending Ctrl + C to the process?
Click to expand...
Click to collapse
Am executing code programmatically within my app
stackoverflow.com/a/3055786/1008278
I have to interrupt execution programmatically.
Executing "exit" is not interrupting current execution.

VenomVendor said:
Am executing code programmatically within my app
stackoverflow.com/a/3055786/1008278
I have to interrupt execution programmatically.
Executing "exit" is not interrupting current execution.
Click to expand...
Click to collapse
The destroy() method of java.lang.Process should work. You would need to send it from a different thread though as the other one will wait for the Process to finish due to the call of Process#waitFor().

Related

Do something every 15 min

I want to execute some code (e.g. poll a website for new data) every 15 minutes. What is the best, most power efficient way to do this?
I think these are my options:
A) auto start my app at device boot, run it in the background as hidden window and use a 15 minute timer.
B) create a Windows service that is always running in background and can fire my app
C) Call some API to register my app with the system so it is launched every 15 minutes, even if it has been shut down. (Which API?)
Thanks.
Use mortscript. Use the following script:
Run "filetorun.exe"
RunAt( Timestamp()+900, "this-script.mscr" )
replace the word filetorun.exe with the app you want to run
replace the words this-script.mscr with whatever you call this script.
Hi Axman,
thanks for the suggestion but Im writing a standalone .exe in C++. Not sure what runtime I need for mortscript and I prefer not taking any dependencies.

[REQ] very small app to display "toast" msg

I am in need of a very small app (just a few lines of code) to display a "toast" message in the active window.
I have the milestone, and made some mods on it, and using the hw keyboard i made shortcuts to execute functions and i would like to display a status from the scripts, and so far it only works with Beanshell(Android Scripting Environment), but the window popup is simply to annoying. so if somebody can make the toast command in a java app, and add the, i think, intent call function so i can execute this using "am" from shell script.
Yes, i know, i could probably do it myself, but i am no good at the "I-went-to-the boat->on my cycle->using my legs" object oriented programming thingy..
If anybody can help me out, any help is appreciated...
I was interested in looking into this to help my growth of android, so gave it a shot.
This is an app that starts, displays the input message, then exits.
run it through command line using the following:
am start -a android.intent.action.MAIN -e message mytoastmessage -n com.rja.utility/.ShowToast
whatever is passed in for the 'message' is displayed in a long toast.
if nothing is passed a toast saying such is displayed.
Let me know if this works for you.
corruptor64 said:
I was interested in looking into this to help my growth of android, so gave it a shot.
This is an app that starts, displays the input message, then exits.
run it through command line using the following:
am start -a android.intent.action.MAIN -e message mytoastmessage -n com.rja.utility/.ShowToast
whatever is passed in for the 'message' is displayed in a long toast.
if nothing is passed a toast saying such is displayed.
Let me know if this works for you.
Click to expand...
Click to collapse
Hmm cant get it to work can you write a example script and upload plz thanks.
ngagephone said:
Hmm cant get it to work can you write a example script and upload plz thanks.
Click to expand...
Click to collapse
Ok it works now is there any chance you can reupload your app but make the icon from the app drawer gone you can do this by removing <category android:name="android.intent.category.LAUNCHER" /> from the manifest file thanks in advance.
ngagephone said:
Ok it works now is there any chance you can reupload your app but make the icon from the app drawer gone you can do this by removing <category android:name="android.intent.category.LAUNCHER" /> from the manifest file thanks in advance.
Click to expand...
Click to collapse
Good call on removing the icon from the drawer. It really doesn't belong there for this type of application.
corruptor64 said:
Good call on removing the icon from the drawer. It really doesn't belong there for this type of application.
Click to expand...
Click to collapse
Thanks will give it a go cheers.
Ok just tested works good this will be nice for my custom rom for displaying msg from my scripts thanks.
Sent from my Pulse Mini using XDA App
I edited the original reply and added a signed apk for the no drawer icon version.
The original version will expire in a year and will not be able to be installed after that since it was signed using debug certs which are valid for a year after the apk was created.
Download the latest one and use that. Glad i could help.
cool, can you guys make one to play a sound? or is their a script or line of code that will play a sound? I made a few scripts to download/install a boot animation but i cant figure out how to notify once its done, thats what im going for. as of right now it just reboots the phone when its done.
corruptor64 said:
I was interested in looking into this to help my growth of android, so gave it a shot.
This is an app that starts, displays the input message, then exits.
Click to expand...
Click to collapse
thanks alot! it already sounds like it works for others.. this is a very nice idea for giving status backs in customs, so its worth alot for modders somehow, when the java is not a knowledge you have
ill test it tomorrow and see how it works out.
corruptor64 said:
I edited the original reply and added a signed apk for the no drawer icon version.
The original version will expire in a year and will not be able to be installed after that since it was signed using debug certs which are valid for a year after the apk was created.
Click to expand...
Click to collapse
resigning when making new mods is less a problem, than coding it
im sure it'll work out in the end...
Damn i think i spoke to soon it works fine via the adb shell it shows the msg i made on the phone but if i try to run it in terminal emulator on the phone it does not work. Any ideas? if any one has it working via terminal emulator do you mind uploading a sample script?
ngagephone said:
Damn i think i spoke to soon it works fine via the adb shell it shows the msg i made on the phone but if i try to run it in terminal emulator on the phone it does not work. Any ideas? if any one has it working via terminal emulator do you mind uploading a sample script?
Click to expand...
Click to collapse
It works through adb shell for me and using Terminal Emulator app on my phone. I copy and pasted the following in terminal emulator on my phone and it showed a toast as expected.
am start -a android.intent.action.MAIN -e message 'this is the displayed text in a toast' -n com.rja.utility/.ShowToast
I don't do scripting so can't help there, sorry. Hopefully someone else can provide you the script you need. From my perspective i think everything is good. Let me know if you find out otherwise.
Good Luck!
Hmm it does work the problem i had is i was making the scripts in windows using notepad++ and i have noticed if i open the script on android i have blocks at the ends of each line. I have had this problem in linux when doing scripts via windows. Any way its not a problem with your app so thanks.
ngagephone said:
Hmm it does work the problem i had is i was making the scripts in windows using notepad++ and i have noticed if i open the script on android i have blocks at the ends of each line. I have had this problem in linux when doing scripts via windows. Any way its not a problem with your app so thanks.
Click to expand...
Click to collapse
UltraEdit rulez!
foxdog66 said:
cool, can you guys make one to play a sound? or is their a script or line of code that will play a sound? I made a few scripts to download/install a boot animation but i cant figure out how to notify once its done, thats what im going for. as of right now it just reboots the phone when its done.
Click to expand...
Click to collapse
Per this request, I made an app that plays a specified sound stream for the duration requested. It does not force a specific sound, but plays whatever sound is set for the type at the time.
/*
* Example run command:
* am start -a android.intent.action.MAIN -e raisevolume 'true' -e soundduration '8000' -e soundtype 1 -n com.rja.utilities/.PlaySound
*
* Program Options and valid values:
* Not passing in a flag is the same as passing false.
* raisevolume - boolean that forces the sound to be played.
* - sets sound mode to normal and raises volume to max - after sound is played, resets mode and volume to previous values
* soundtype - number to indicate type of sound to play
* - Valid Values:
* - 0 - ringtone
* - 1 - notification
* - 2 - alarm
* soundduration 8000 -- if nothing is passed default is 4000. This is the duration the sound is played.
*/
Please let me know if you have any questions or problems with it.
right on! thanks dude! ill give it a go and let you know how it works
Two years ago I was in need of a simple notification tool that could have been run by a command line in a script.
So far the best I found was this thread and the tiny app made by corruptor64.
That wasn't exactly what I was looking for so I finally decided to try to make the tool by myself.
Starting from scratch (I am not an Android developer) in a few days of studying and developing I ended up with a working small app, that I named Notify4Scripts and I made it public only this past June, here on GitHub
https://github.com/halnovemila/Notify4Scripts
Note that since the app is basically a service that has to be launched by the Android's shell "am" (activity manager) command, the Android system needs to be rooted first in order to be able to use such am command and have notify4scripts executed.
halnovemila said:
Two years ago I was in need of a simple notification tool...
Click to expand...
Click to collapse
Could you please write an intent to open a directory given as a variable when I tap notification. I want to use it with clamav daemon running on my phone so that I can open the directory containing infected file when I get the notification. Please note that directory can be out of $EXTERNAL_STORAGE e.g. /data/data/ which is only accessible with root privileges.
Can the notification be multi lined or expandable with "b_noicon 0" so that complete path and virus name is visible before opening the directory?
Thanks for this great tool.
mirfatif said:
Could you please write an intent to open a directory given as a variable when I tap notification. I want to use it with clamav daemon running on my phone so that I can open the directory containing infected file when I get the notification. Please note that directory can be out of $EXTERNAL_STORAGE e.g. /data/data/ which is only accessible with root privileges.
Can the notification be multi lined or expandable with "b_noicon 0" so that complete path and virus name is visible before opening the directory?
Thanks for this great tool.
Click to expand...
Click to collapse
Hi,
the intent depends on the app you are willing to use to "open" the target folder.
If you are willing to use a terminal emulator app you can look at the many example I've wrote on the wiki available at the GitHub page of my tiny project (here's the direct link to the wiki https://github.com/halnovemila/Notify4Scripts/wiki ).
In such examples I illustrate how to call the terminal emulator app and have commands passed to it for execution.
If you'd like to use other apps, like a file explorer app, then you need to know the proper intent for that app.
The "easy" way is to make a home screen shortcut of the app opening a folder, then locate the Launcher app database, open it and read the intent used for the shortcut (that's how I found out all the intent used in the examples).
When the notification layout is set to "Custom View" (which always is when b_noicon is set to 1) multi lines text content is possible (also with use of \n new line escape code in the text) but it's not "expandable". You can adjust the content text size and remove the title line (with str_title "") to gain more room and be able to fit longer text on the notification box.
Hope this helps

How to let function wait AsyncTask finish then only perform return

How to let function wait AsyncTask finish then only perform return, purposely my function need to get a result processed from AsyncTask, any expert can help?
lye85 said:
How to let function wait AsyncTask finish then only perform return, purposely my function need to get a result processed from AsyncTask, any expert can help?
Click to expand...
Click to collapse
You cannot let a method running in the UI (main) Thread of your application wait for an Async task to finish, that would block the UI Thread and result in an "App is not responding" dialog. To use Async tasks and get the result, read this documentation, especially "The 4 steps". You'd have to use the onPostExecute(Result) method to get the result. You can then call the function which needs the result again. But never wait for an async task to finish, that's not the point of it!
I've just posted such a onPostExecute example here, seems this is exactly what you asked for by coincidence..
thanks for all reply, but is there any other to call ksoap without using Asynctask?
Android- Asynchronous
lye85 said:
How to let function wait AsyncTask finish then only perform return, purposely my function need to get a result processed from AsyncTask, any expert can help?
Click to expand...
Click to collapse
Here You have Many options with you like
1. Just Load Your required UI Page After the Post Execute Method
2. Just Show Dummy Text firstly then update the ui after you get your response.
3. Just take one flag which is updatinng on post execute method after that u can update your ui
First question would be - why are you using ASYNCtaks if what you require seems to be a sync task If you're using it because you want to change GUI when the task is finished, the easiest way would be of course to use onPostExecuted method of AsyncTask. The other way would be to supply a callback/runnable to your async task (but why would you do that when there's onPostExecuted is beyond my comprehension).
Note that on Android you have to think asynchronically. I've tried to wait for async tasks to finish, but believe me - it was not worth it and I was severely punished!

App crashes, but doesn't crash

First of all I know that this title creates a lot of questions.
The problem is exactly what the title says.
While developing apps, you make mistakes (NullPointers etc)
They are thrown when the occur, normally.
Today, it's different, sometimes, when Android (Studio) feels like it wants to help me, it redirects the debugger to a class that is used to "crash" the app at an exception.
With the cool features of Android Studio, you are able to see the content of the strings during debugging. With that feature, I've been able to solve most of the problems.
But now, I ran into a problem that doesn't have the solution above.
When the app "crashes" the screen stays white, and nothing is outputted in any logcat.
All it says is
"D/AndroidRuntime: Shutting down VM"
Is this a bug in Android Studio or in Android?
Hello,
First of all make sure that you have the latest version of Android Studio.
When the app crashes is selected application above the logcat (there is a spinner which says you what app is being displayed, does it say 'com.yourpackagename'? or does it say 'No Application'?) If so I think there is a bug in Android Studio, I have faced it too several times. When your app crashes it force closes the app?
You can try these things:
Unplug your phone and plug it again and wait for a confirmation on the device's screen.
If the confirmation dialog is not showing up, while the device is connected via USB, go to the Settings and disable the USB debugging mod. Wait a few seconds and re-enable it. Wait for confirmation on the device. If still not shows. Close the Android Studio and repeat the above steps. Reopen the Android studio. Run your app, if still not getting logcat you can try getting it manually like this:
Go to the folder where adb is installed (Normally on Windows C:/Users/Username/Appdata/Android/sdk/platform-tools) via terminal with admin rights .
Run cmd.exe as admin, type:
cd ../../Users/Username/Appdata/Android/sdk/platform-tools (where Username is the username of your windows account.)
Type adb devices while your phone is connected via USB with debugging on
See if it says unauthorized, if not, you are good to proceed to the next step.
Type
adb logcat > mylogcat.txt
And quickly open your app to go to the app that causes the crash. Try to cause the bug. When the bug occurs press Ctrl+C
Now your logcat is in the mylogcat.txt within the same folder of adb.
If you need more help extracting the logcat via the above way (manually) let me know
Hmm, at the moment the crash occurs, the app freezes and stays white. Only the main thread though. I've checked the logcat in Android Studio, the app is my app, and the doesn't really matter. It shows nothing.
No logcat not even with the cmd option.
Could it be that my custom rom is causing difficulties?
Thanks,
Tim
Try to place breakpoints in every line on your code. Try step by step to run the app line by line and where the execution flow jumps some lines of code that it shouldn't or stucks at a line of code whithout going to the next lines of code that it should, there should be the problem.
Are you doing intense work on the main thread? I had experienced an issue where I was doing heavy work on a view's onTouchListener and because the touch events were bottlenecking, my UI stuck, and on logcats I didn't got any error, but got a warning that the thread is shutting down due to the fact that the onTouchListener was busy to handle the touch event.
The best option and the most reliable you have now is to debug your app line by line as mentioned above. If it does not help, try commenting lines of code where you think you may be doing intense work or inside listeners and see if your app still crashes. Then uncomment blocks of code and run again and again to see until it crashes again. In the last block of code that you uncommented should be the error.
That way you can limit your search on these lines of code.
If you could further provide any detail of what are you doing in the main thread or any sample code, I will be able to help you further
I do not think that it is related with the custom rom, otherwise logcats would have some errors of missing packages etc
Well, using breakpoints I was redirected to the piece of code that is used to output exceptions. I didn't had a breakpoint there so I don't know why it went that deep. I'm doing heavy for with the runtime.exec command.
I've discovered the exception that was thrown when I posted this question, and the exception wasn't printed anywhere so I don't know why this isn't working. I was getting the java.lang.NumberFormatException exception. This will cause the app to crash, right?
If not how do I 'enable' that?
Thanks
If you are catching that exception the app will not crash. (try catch block). It may crash when any variable from that try catch block had that Number format exception, but when referencing it from outside the try-catch block.
Numberformat exception is occured when trying to convert String to Integers or a Number, and the string does not match the Integer format. E.g. Integer.parseInt("4.3") will throw that exception.
To enable the crashing of the app during that exception, do not catch that exception (NumberFormatException). If you are catching Exception (it is a superclass of NumberFormatException and is more general, it includes this exception too) then again your app will not crash.
If you are catching any of these exceptions, your app will not crash (may crash inside the catch or outside the try catch block)
Exception
RuntimeException
IllegalArgumentException
NumberFormatException
Possibly, a string conversion to Integer or Long or Double or Float may be causing your problem The errors are "silenced" due to the try-catch block Are you printing the exceptions with e.printStrackTrace in the first line of the catch block? (e is the Exception caught)
Hmm, I'll take a look at my code so check if I used a try and catch block.
Thanks!
It was the fault of Google Analytics, I had exception reporting on and that was causing the app to freeze instead of crashing and showing the exception.
Thanks!!

[GUIDE] Remapping Android TV remote buttons

Remapping Android TV remote buttons
​In this guide I will explain a way to remap to the shortcut buttons on the remotes of Android TV devices which cannot simply be remapped by e.g. Button Mapper.
I will use the Walmart Onn Box as example for this guide, but it should also work for devices like the Xiaomi Mi Box.
The general idea is to install an Android automation app which analyzes the system logs of you device and starts your desired apps when it sees the button press log messages.
Enabling ADB
To install the automation app and give it permissions it needs, you must enable developper mode on your Android TV device and connect to it from your computer.
Those two turorials should explain you how to do it:
https://www.xda-developers.com/how-to-sideload-apps-android-tv​
https://www.xda-developers.com/install-adb-windows-macos-linux​
Easy way to control your Android TV device
Since it is very cumbersome or impossible to do everything with the remote control I recommend to use ScrCpy.
This allows you to easily control your device from your computer using mouse and keyboard.
After installation you can connect to your device with adb and enter 'scrcpy' in your console. You should instantly see the screen of your TV on your computer.
Installing 'Automate'
The app I recommend for the automation is called 'Automate'. It is free, but sadly can't be directly installed from the app store on Android TV (because of compatibility).
To avoid this limitation you can download the APK from e.g. Apkmirror and install it manually via ADB.
adb install .\path\to\the\downloaded\apk\Automate_v1.32.6.apk
Click to expand...
Click to collapse
While you are at it you can also give the app some privileges which it needs later to read the system logs and to start the apps.
adb shell pm grant com.llamalab.automate android.permission.SYSTEM_ALERT_WINDOW
adb shell pm grant com.llamalab.automate android.permission.READ_LOGS
Click to expand...
Click to collapse
To start Automate you need a launcher that can see sideloaded apps. I recommend the X-plore File Manager since it's also a good file manager and can be easily installed from the app store.
( There are also other alternatives like 'Tasker' instead of 'Automate', but since that is not free and activation doesn't work properly on a sideloaded app I can't recommend that. )
Configuring 'Automate'
After starting Automate you can create a new 'flow'. The goal of that flow is to monitor the system logs, and start your desired apps everytime it sees a button press message.
That can be done mainly with a 'Log await' node that contains following configuration:
Tag: WindowManager
Message: .*interceptKeyTq keycode=(\d+).*
Priority: Debug
Logged message (array): keycode
Click to expand...
Click to collapse
You can then use "Expression true?" nodes to check for the found value in keycode (e.g. for the Live TV button) ...
Formula: =keycode[1] = "172"
Click to expand...
Click to collapse
... and start your desired app with "App start" nodes.
Package: com.google.android.tv
Click to expand...
Click to collapse
An example of a full flow can be found here: Remap Onn. Android TV remote buttons
Conclusion
After setting all this up the apps should start when you press the buttons.
However the original app (or its installation view) also starts before it, so if you press the back button you will return to that app instead of the previously running app. To avoid that just use the home button instead.
The Automate app will not automatically start if you reboot your Android TV device. If you want that you can activate that in the settings: 'Run on system startup'. But make sure that everything works perfectly before you do that!
If you get stuck in a loop where you can't use other apps and also can't open and configure Automate anymore, you can use this command via ADB to disable all flows:
adb shell am broadcast -a com.llamalab.automate.intent.action.STOP_FLOW -n com.llamalab.automate/.StartServiceReceiver
Click to expand...
Click to collapse
Double_A_92 said:
To start Automate you need a launcher that can see sideloaded apps.
Click to expand...
Click to collapse
As a one-off, in case you don't want to install another app, you can always run:
Code:
adb shell am start -n com.llamalab.automate/.FlowListActivity
KenMacD said:
As a one-off, in case you don't want to install another app, you can always run:
Code:
adb shell am start -n com.llamalab.automate/.FlowListActivity
Click to expand...
Click to collapse
I went to Settings > Apps > See all apps and then scrolled down and clicked 'Show system apps'. You can find Automate, and then click open to launch.
Thanks for your guide. Now my Xiaomi Stick 4K remotes Netflix, Prime Video and Patchwall buttons are changed to open other apps.
Can you make Automate flow work like Button Mapper having also double click and long press open different apps.
stapreedi said:
Can you make Automate flow work like Button Mapper having also double click and long press open different apps.
Click to expand...
Click to collapse
That's probably not possible, since this is a very janky way that relies only on the android system text logs. Maybe the double click could be done in some complicated way, but the long press definitely not.
Thank you for your reply.
I asked same thing at Reddit AutomateUser and Automate developer ballzak69 answered but he did not tell how to modify flow:
https://www.reddit.com/r/AutomateUser/comments/uo5c00
Your guide is popular:
https://www.reddit.com/r/MiBox/comments/uo1m4s
Thanks for Idea. I have acer remote with netflix, youtube, primevideo and tiki live button. How to find keycode for these button in my acer remote because given keycode don't works
omdhar said:
Thanks for Idea. I have acer remote with netflix, youtube, primevideo and tiki live button. How to find keycode for these button in my acer remote because given keycode don't works
Click to expand...
Click to collapse
Connect the output of the "Log await" with the "Toast show" node, and the output of that back into the "Log await". That will create a little message popup with the keycode everytime you press a button.
Double_A_92 said:
Connect the output of the "Log await" with the "Toast show" node, and the output of that back into the "Log await". That will create a little message popup with the keycode everytime you press a button.
Click to expand...
Click to collapse
Thanks. It will be great if you could share flow example to generate keycode in message popup. It will also help many other here too.
omdhar said:
Thanks. It will be great if you could share flow example to generate keycode in message popup. It will also help many other here too.
Click to expand...
Click to collapse
Download this file Remap Onn. Android TV remote buttons and do what Double_A_92 told. Use your tablet or phone to modify flow file because its easier. When you modify flow file on your tablet or phone then you have to use example Aida64 for app package names on your tv. Use Send files to TV for what app name says. You can do it from Automate apps share icon.
Hey, thanks for the detailed guide! i did everything (i think )but when i hit start its stuck on the “Log await” i used your shared flow cause i got the same box.
Any ideas?
harel013 said:
Hey, thanks for the detailed guide! i did everything (i think )but when i hit start its stuck on the “Log await” i used your shared flow cause i got the same box.
Any ideas?
Click to expand...
Click to collapse
Hmm weird. Try deleting the flow and download it again so you have a fresh copy.
Also make sure to configure which apps you want to start. In my shared flow they are just random apps that I had installed. Maybe that causes problems if they aren't actually installed on the system.
what is different between this way and others way like "Button Mapper" or tvQuickActions?
oldman20 said:
what is different between this way and others way like "Button Mapper" or tvQuickActions?
Click to expand...
Click to collapse
This is for devices where the vendor buttons are not even registered as button presses by the system. So if you tried to use ButtonMapper or other apps, it wound't let you select the button and instead always open the app written on the button.
But yeah, if ButtonMapper works for your device that's obviously a much better way of doing it.
Double_A_92 said:
This is for devices where the vendor buttons are not even registered as button presses by the system. So if you tried to use ButtonMapper or other apps, it wound't let you select the button and instead always open the app written on the button.
But yeah, if ButtonMapper works for your device that's obviously a much better way of doing it.
Click to expand...
Click to collapse
thank, it got it!
btw, can i ask this?
How to check succeeded in transforming tv box into an Android TV ? or just download app from Google Play without issue?
I have the entire thing written out and plugged in, the only issue im having now is "Syntax error in regexp pattern near index1" i cant figure out through google what im doing wrong.
NarkosNakan said:
I have the entire thing written out and plugged in, the only issue im having now is "Syntax error in regexp pattern near index1" i cant figure out through google what im doing wrong.
Click to expand...
Click to collapse
Make sure you really wrote
.*interceptKeyTq keycode=(\d+).*
With all the dots and asterisks....
Double_A_92 said:
Make sure you really wrote
.*interceptKeyTq keycode=(\d+).*
With all the dots and asterisks....
Click to expand...
Click to collapse
Thank you very much, i couldn't see the first period at all in the main post~
The last problem im having is finding key codes, i don't understand how we find those for the app.
NarkosNakan said:
The last problem im having is finding key codes, i don't understand how we find those for the app.
Click to expand...
Click to collapse
Connect the output of the "Log await" with the "Toast show" node, and the output of that back into the "Log await". That will create a little message popup with the keycode everytime you press a button.

Categories

Resources