[FYT Android Head Units] surfer63:
View attachment 4725668

Hi,

I created an app (first release March 2019) that works on standard FYT ROMs (Joying, T'eyes, KingBeats, NaviFly, Funrover, some Witsons, some Sinosmarts, iDoing, etc) and allows to modify the standard actions (started apps) of a number of the hardware buttons on the units.

See on my github repository.

It does not (always) work in combination with the Steering Wheel keys if they are controlled by the CANbus..

It is simple but has the great benefit that you do not need a rooted unit (YOU DON'T NEED ROOT, but it functions just as well on a rooted unit).

The app is < 50 Kb and starts therefore extremely fast.

Again: See on my github repository.

New release 1.6.0 18 December 2022:

Changelog:

giladg (Gilad S.) added functionality for Llamalab Automate. A tool to automate various tasks and app flows on your Android device.

Download this 1.6.0 version.

For a "Changelog" about this and previous versions, you can visit the general Releases page.

Currently there are 4 options to "start something" with the "Call method"

by package name

by intent (package name / intent)

by system call (terminal command(s) or script)

by LlamaLab Automate Flow URI (Automate various tasks; Added by giladgd (Gilad S.)

View attachment 5222369

View attachment 5222365

View attachment 5787517

by package name: This is NOT the name of the apk but the internal package name. How do you get this "package name"?

Use the "List all Installed apps" option in the main screen of the settings. It shows the app icon, the app name and the package name. This package name is what you need. You can select it and copy & paste it into the field.

Search in play.google.com for the app you want to start. Say you want to start the navigation app "Magic Earth" and you have selected that one in the play store (in a browser, not the android app). In the address bar you will then see "https://play.google.com/store/apps/details?id=com.generalmagic.magicearth". The bold part behind the "id=" is your package name.

by intent: Every app has a "launch" intent to start the app. Some apps can also be started with other intents to immediately start a specific function. Google Search can be started with the launch intent, but you can also start it with the Google Voice search option intent. The Google (Search) package name is "com.google.android.googlequicksearchbox", the specific intent for google voice search is "com.google.android.googlequicksearchbox.VoiceSearchActivity". The combined "String to be used" is therefore "com.google.android.googlequicksearchbox/com.google.android.googlequicksearchbox.VoiceSearchActivity".

Another example is the Joying Bluetooth apk having intents for the dialer (default launch), the call receiver, the bluetooth streaming, the pairing and a few more.

by system call: A system call can be a direct (linux) command or a shell script or a binary (to do something).

= Commands can be a single command as in:

"ls -l > /sdcard/some_file.txt" to capture a directory listing to a file

"input keyevent 3" => Go to the Home screen (of the default launcher)

"am start -a android.intent.action.MAIN -c android.intent.category.HOME" => Go to the Home screen (of the default launcher)

"input keyevent 127" => pause active media player (any media player)

"input key event 126" => (re)start last used media player.

"am start com.syu.radio/com.syu.radio.Launch" => Start the radio app with the default launch intent (or better use "by package name": com.syu.radio; Or use "by intent": com.syu.radio/com.syu.radio.Launch)

As you can see from the 2nd and 3rd example, there are multiple ways to do something.

From the 6th example you can see that you can start an app (the radio) from the command line with "am start <full intent>", or by package name, or by intent directly.

by Automate Flow URI: Every Flow in LlamaLab Automate has a URI you can find in its Flow Beginning block.

For example: content://com.llamalab.automate.provider/flows/7/statements/1.

If you want to start one Flow on a short button press and a different Flow on a long button press, you can set the value to be the short press Flow URI, followed by a new line with the maximum time to wait for a second button press in milliseconds, followed by a new line with the long press Flow URI.

For examples on how to use a created flow from FytHWOneKey, see the Readme on the github repository site. On how to use LlamaLab Automate itself you have to visit the LlamaLab website.