This app was mentioned in 238 comments, with an average of 1.63 upvotes
>it possible to have tasker disconnect from a specific network or connect to a specific network when a condition is met?
Yes, It is. Using Java or AutoTools Plug-in.
There are threads out the related to your needs. There are some tricky approaches...but in my opinion best solutions are 2:
1 - (The easy way). Using AutoTools plugin.
2 - (The not so easy way). If you have some Java skills, You can achieve the same result of AutoTools but "natively".
Best way to get 12-hour is to use the "Variable Convert" action, specifying %TIMES
as the input (time in absolute seconds) and choosing "Seconds to Long Date Time".
Then extract the time using the Variable Search action. Other options would include using a Javascrptlet to do it, or if you have <strong>AutoTools</strong> plugin there are options to get any time format you'd like.
Using just Tasker it would look like:
A1. Variable Convert: %TIMES Function: Seconds To Long Date Time Store Result In: %output
A2. Variable Search: %output Search: \d+:\d+(AM|PM) Store Result In: %final_time
A3. Flash: %final_time(1)
And using that method you'll get the 12-hour time along with the AM/PM suffix in the variable %final_time(1)
Starting with non-native - the plugin <strong>AutoTools</strong> Arrays action has everything you could ever want in array processing, including filtering, even by Regex, and even across multiple arrays to keep them all in sync.
Now getting back to native Tasker - there is an array search syntax that returns the numerical indexes of what you're looking for that matches in the array. The syntax is %array(#?search terms)
and it supports pattern matching. So if you're looking for only array elements that have the word "apple" in them anywhere - you'd use %array(#?*apple*)
.
New for Tasker 5.0 is the ability to use a Regex in there as well, so you could use something like %array(#?~R[1-5][0-9]+)
The problem that comes in after that is that it only returns the numerical indexes (in the format a comma-separated string assigned to a variable, returning just 0 if nothing matches), so you'd have to loop through them and create a new array with your filtered values:
A1. Array Set: %things Values: apple pie,bananas,the big apple,grapes,apple cider Splitter: ,
A2. Variable Set: %indexes Value: %things(#?apple)
A3. Variable Split: %indexes Splitter: ,
A4. For: %num Items: %indexes()
A5. Array Push: %output Value: %things(%num) Pos: 1
A6. End For
Your %output()
array will consist of: apple pie,the big apple,apple cider
since they all have the word "apple" in them somewhere. And that's the general scoop with all that. If you're going to get into a lot of data processing I definitely recommend going the AutoTools route.
EDIT: Made better example array initial values.
Yes, there's an easy solution actually. The plugin <strong>AutoTools</strong> has its "Connectivity" Action which will return all info about all nearby networks, regardless of if you're connected to one at the moment or not.
It returns in JSON format the following info for each network:
"ssid": "HOME-817762", "seen": 0, "capabilities": [ "WPA-PSK-CCMP+TKIP", "WPA2-PSK-CCMP+TKIP", "WPS", "ESS", "BLE" ], "distanceErrorCm": -1, "numConnection": 0, "mac": "00:1f:d6:f2:81:60", "distanceCm": -1, "bandwidth": "20", "untrusted": false, "channel": 1, "level": -48, "frequency": 2412
There are some folks here who are very adept at using Javascript (like /u/JustRollWithIt). Regarding the time picker you linked to - not sure if that can be adapted directly into Tasker.
Luckily though, that same exact style time and date picker is available in <strong>AutoTools</strong> Dialogs action.
If it offers the data in xml, grab the <strong>AutoTools</strong> plugin and use its "JSON Read" Action, which will also accept XML data as input. Then you can just name the fields you want to grab and bam - you're done in one single Action.
I don't understand why people depend on the Playstore bot so much and clutter the comment area. Is linking something like Autotools so much of an effort?
If the method /u/tinkerytinker mentioned yields the same intermittent results, try the plugin <strong>AutoTools</strong>'s "Connectivity" action, which can query for all Wifi information which includes all available networks along with which one is connected, if any.
That may be more reliable if Tasker's built-in vars/methods are yielding consistent results.
There is a way to do it with an Event, which triggers only at the precise moment the connect happens:
PROFILE: Event > System > Intent Received: Action: android.bluetooth.device.action.ACL_CONNECTED
Then if you want to get the name/address of the device connected, the easiest way is with <strong>AutoTools</strong> "Connectivity" action. It will return exactly what Bluetooth device is connected.
If you want to have Tasker find every unique word in a text file and then give the counts, the plugin <strong>AutoTools</strong> " Text" action can do this. You'd have to prep the data just a bit:
A1. Read File: <path to file> To Var: %filedata
A2. Variable Set: %spc To: <press space key>
A3. Variable Convert: %filedata Process: To lower case
A4. Variable Search: %filedata Search: [^a-z\s] Replace Matches: on Replace With: %spc
A5. Variable Search: %filedata Search: \s+ Replace Matches: on Replace With: %spc
A6. Variable Split: %filedata Splitter: %spc
A7. AutoTools > Text Text: %filedata() Variable Name: <leave empty> Count Repeat Items: on
A4 changes every non-letter character to a space, then A5 gets rid of any excess spaces. A6 then splits all the words remaining into an array, and in A7 the AutoTools plugin then counts the unique instances of each.
Then you will have every unique word in the text file in the AutoTools output array %atitemcount_items()
and the corresponding counts for each word in %atitemcount_counts()
.
There's a lot of ways to do this. You could do a bunch of if/then actions to deal with what happens when subtracting to January or adding to December. Javascript comes into play sometimes (you can find some scripts if you Google), however I'll put forth the plugin solution :)
With <strong>AutoTools</strong> you can simply use it's "Add Time" action to add or subtract a month. And you also tell it in what format you want the month. Putting in MMM
gets you the 3-letter month abbreviation you're looking to use. You can also pick the output variable prefix. So "next" would get you %nextdate
.
So in 3 Actions:
A1. AutoTools Time > Add Time: Date Use Now: yes Add Unit: Month Value: 1 Output Format: MMM Output Variable: next
A2. (use a -1 Value for last month)
A3. (use a 0 Value for this month)
Also if you want to be able to adjust font size and color, background color, and include icons or images in the toast, check out <strong>AutoTools</strong> Toast action ;)
<strong>AutoTools</strong> "Connectivity" Action can force a connect [pic] to the device you want. (and in the process force a dis-connect from any connected device).
It can also return very detailed information about which device is connected along with which device(s) are available, which can assist Tasker in making the connect/disconnect decisions. Perhaps this can also help the issue you've been having /u/JustRollWithIt.
You can use the plugin <strong>AutoTools</strong> to encrypt and decrypt data. Not sure how big a file (or dataset) it can handle. Perhaps /u/joaomgcd can shed light on that aspect.
I have no idea how Spotify chooses the complimentary colour but you can use AutoTools Image plugin to get the colour representations from an image. It works by passing the task an image, the album art in this case, and it would return 3 colours in hex:
I uses this in my lyrics dialog task and the primary colours that I had gotten are often pretty close to the background colours of Spotify's notification. However, the secondary colours returned by AutoTools are usually a hit and miss but nonetheless, still a good try.
Create a profile -> State -> Display -> Display Orientation
You can use either AutoTools or the AutoBubble plugin to accomplish this or simply create a scene.
My bad, you'll still need one plugin even using Slack API : AutoTools
​
Tasker monitors a few variables for SMS :
%SMSRF / %SMSRN / %SMSRB / %MMSRS / %SMSRD / %SMSRT*The sender address, name, body, subject, date and time of the last text (SMS or MMS) received.These variables will be empty until the first time a text is received after they have been referenced because Tasker does not monitor texts unless it's needed.*Name is set to sender address of no contact could be looked up. It's unavailable on Android versions prior to 2.0.Body (%SMSRB) is only set for SMSs.Subject (%MMSRS) is only set for MMSs.
​
You can then use these variables in the AutoTools Json Write action and then send them to Slack API. Might be a bit complicated if you are not familiar with it. Still you can automate the whole process
Is that chunk of data all in one variable? If so it looks like the data you're looking for is all at the very beginning there inside the Frontline//2017x08
?
Showname = Frontline
Season = 2017
Episode = 08
If so using the plugin <strong>AutoTools</strong> Regex action will likely be the best to quickly create variables out of that data. As an example/test Task:
A1. Variable Set: %data To: Frontline//2017x08 - Last Days of Solitary//The U.S..
A2. Variable Set: %regex To: (?<showname>[^/]+)//(?<season>\d+)x(?<episode>\d+)
A3. AutoTools > Regex Text: %data Regex: %regex
A4. Flash: %showname %season %episode
If you're getting that data from an AutoNotification Intercept (or Query) you'd set %data in A1 to %antext or whatever variable name contains all that information.
The regular expression in A2 is the only tricky part, since it's very specific to how that data chunk is structured.
As /u/rbrtryn said - tying to push or pop values from the same array you're looping through almost always causes issues.
As another solution that can do it all in one single action - use <strong>AutoTools</strong> "Arrays" action, and in the "Filter" section put ^[^#]*$
and check the box for "Regex".
That basically means "string does not contain" whatever character(s) come after the carat inside the brackets. Which is necessary since the "Filter" section tells the plugin which values to keep in the array.
Also you'll need to choose a different name for the Output Array than the name input. This is just due to how this plugin handles arrays when values are to be popped/removed.
Here is a Test Task that contains the working AutoTools Arrays action.
You can also use Search/Replace, just make sure to escape the $
by using \$
because the Search field expects a Regular Expression and the $ is a reserved character.
Far better than that though, if you have a whole bunch of variables that all contain currency and you need to do math on them - first use plugin <strong>AutoTools</strong> "Text" action with it's "Remove" feature, and you can remove the $
from multiple variables all in one action.
Are those arrays or variables? Regardless you can do this quite easily with the <strong>AutoTools</strong> plugin.
Firstly you'd merge the two (or more) variables then use AutoTools > Text > Count Repeat Items
to get the counts of occurrence of all items.
Secondly you'd use AutoTools > Arrays
to then filter for only items that have an occurrence value of 1
. As so:
"AT Get Unique Values"
<TEST DATA> A1: Variable Set [ Name:%first To: one,two,three ]
<TEST DATA> A2: Variable Set [ Name:%second To: one,two ]
<COMBINE TEST DATA> A3: Variable Set [ Name:%joined To: %first,%second ]
<GET OCCURRENCE COUNTS FOR ALL VALUES> A4: AutoTools Text [ Configuration:
Text: %joined
Count Repeat Items: true
Separator: ,
Timeout (Seconds):60 ]
<FILTER FOR ITEMS WITH AN OCCURRENCE COUNT OF 1 ONLY> A5: AutoTools Arrays [ Configuration:
Input Arrays: %atitemcount_counts()|%atitemcount_items()
Separator: |
Item Separator: ,
Names: counts,unique
Output Variables Separator: ,
Merged Array Name: atmergedarray
Filter: 1 Exact: true
Timeout (Seconds):60 ]
<FINAL LIST OF UNIQUE ITEMS> A6: Set Clipboard [ Text: %unique() ]
CLICK HERE to download / import the above Task, which you should be able to easily modify for your data ;) Note the final output is an array named %unique()
which gets you the truly unique items across all the data.
Auto tools by joaoapps has an event trigger for media state that can tell if media is playing. And Tasker has "headset plugged" as a state trigger under hardware.
https://play.google.com/store/apps/details?id=com.joaomgcd.autotools
EDIT: You'll need to have AutoTools installed to be able to turn on/off your GPS.
Here's my version of it.
Profile: GPS For Apps (5) Application: SELECT YOUR APPS HERE Enter: GPS On (3) A1: AutoTools Secure Settings [ Configuration:Location Mode: HighAccuracy Timeout (Seconds):60
A2: [X] Flash [ Text:Turning on GPS... Long:Off
A3: Flash [ Text:GPS: %GPS Long:Off
Exit: GPS Off (4) A1: AutoTools Secure Settings [ Configuration:Location Mode: Off Timeout (Seconds):60
A2: [X] Flash [ Text:Turning off GPS... Long:Off
A3: Flash [ Text:GPS: %GPS Long:Off ]
The plugin <strong>AutoTools</strong> has a "Text > Number Formatting" Action that can let you specify all kinds of formats. Maybe worth looking into / trying out if you're looking at 32 actions or lines of code ;)
The array itself technically has no separator. When you use %array()
it's actually an array function, whereby Tasker shows you the array always using a comma. It also can be used in a "For" loop for convenience.
When you use Variable Join (it should really be called Array Join) it turns the array into a string, separated by the character you choose. The original array still remains though unless you check the box for "Delete Parts".
Example:
A1. Array Set: %colors
Items: red,blue,green,yellow
Separator: ,
A2. Variable Join: %colors
Joiner: --
A3. Flash: %colors()
A4. Flash: %colors
So A3 will still flash red,blue,green,yellow
since the array still exists. Action A4 will flash the joined string red--blue--green--yellow
. And once it is a string you can perform a Variable Search action on it, since it only accepts strings as the input.
You can always re-split it afterwards if you need an array again. But you may want to perform an Array Clear action first to make sure the array is fully replaced.
If you want to do it all in one Action, the <strong>AutoTools</strong> plugin can handle advanced array and text operations all in one action. It allows you do a search/replace on an entire array for example.
Depending on what you are trying to do, AutoTools may be able to cover what you're trying to accomplish. It does a lot of what Secure Settings did plus a lot more.
Yes they are. They are paid apps, but you will not begrudge one penny.
There are lots of tutorial videos. Enjoy!
The easiest way to parse out JSON data even if it's complex paths or arrays is to use <strong>AutoTools</strong> "JSON Read" action.
For something as simple as the example you posted though, a Javascriptlet as mentioned in this thread is a good way to go as well.
Not sure if you have AutoTools plugin but if you do it has a "Force BT Connection" option under the Secure Settings option. I don't use it but if you haven't tried it it's an option.
https://play.google.com/store/apps/details?id=com.joaomgcd.autotools&hl=en
As for some other options, you could create a Scene, use an <strong>AutoTools</strong> Dialog, or the <strong>Material Design Plugin</strong> "Input Sheet" that takes multiple inputs at once.
And yes Variable Query is a great solution too.
AutoInput can only detect hardware key presses. If you want a swipe type of trigger, <strong>AutoTools</strong> "Web Screens" Action has a preset for it, and you could link the swipe to an AutoInput "Paste" action.
Interesting question. I haven't seen an option for this in the text element. Perhaps there is one somewhere though.
I know in the <strong>AutoTools</strong> List Dialogs the highlight color can be configured in this manner.
But if you're just looking to place text at a certain place on the display with a unique color when clicked, an AutoTools "Web Screen" is what immediately comes to mind. It may not be in the current list of presets but can likely be created.
I think the plugin <strong>AutoTools</strong> can solve this for you by allowing you to do a scan as an Action inside a Task.
It's Connectivity > Check Bluetooth Devices
Action only takes about 1-2 seconds to run. And you could just put a brief Wait after it, then have the Task loop back to check again. Of course you'll need to put some kind of Timeout somewhere to stop the loop, unless you want it looping all day lol (although you could probably leave it 'scanning' in the loop for as long as you want).
The Action outputs JSON with data on all paired devices including MAC address and connection status:
{"bluetoothresults": [ { "name": "Chromebook_2109", "address": "5C:F8:A1:6B:02:3A", "connected": false }, { "name": "CHEVY MOTORS", "address": "E8:F2:E2:57:1D:96", "connected": false } ]}
Your Task could look something like:
A1. AutoTools > Check Bluetooth Devices
A2. If %atbluetoothdevices ~ <whatever you want>
A3. <do something>
A4. End If
A5. Wait 5 Seconds
A6 Goto Action 1
You may want to try/use the plugin <strong>AutoTools</strong> with it's "HTML Read" feature. It has an easy setup mode to find the data on the page you're looking for and it can parse javascript as well.
There is a beta version that is a free download.
The plugin <strong>AutoTools</strong> has encryption/decryption for Tasker.
Then you can setup automated file uploading/mirroring with an app like <strong>DriveSync</strong> that also has some Tasker integration builtin (mainly to start a sync process).
> What should be the notation? %Data(1,1) or maybe %Data[1](1), I dont know, I am lost here.
Yeah, you'd think it would be one of those, however - Tasker doesn't support nested arrays very well. That's because %Data21
could mean the 21st item in the %Data array, or - it could mean the 1st element in the %Data2
array.
Tasker really wasn't designed to be that extensible, and is one of the only 'languages' that doesn't require a delimiter character to reference array elelements (i.e. requiring parenthesis or brackets). Which makes things confusing real fast when doing what you're trying to do.
Also - trying to do this with a Global variable name (which therefore makes it a Global array) can get messy real fast and leave all kinds of array values sitting around in Tasker long after you're done with them.
There are some plugins like <strong>AutoTools</strong> (with its "Arrays" action) that makes handling arrays like this a lot easier. However if you could expand more on what you're ultimate goal is, or give an actual example of your data and how you're trying to access it, would be helpful.
As /u/Stupifier mentioned, it is listed under AI > Modes > Gestures
.
The section you're referring to where you couldn't find it is actually a newer action that is used to simulate performing a gesture. All in all - the gestures thing in AutoInput has become a bit confusing.
I highly recommend using the gestures feature in <strong>AutoTools</strong> as it is more current and robust, with a ton more options and features.
As others have said here it is very simple:
PROFILE: App > YouTube
TASK: A1. Display > Auto Rotate: On
And when you exit YouTube it will automatically turn it off. If what you're talking about though is a total 'locked' orientation of landscape when in YouTube, you'll likely need to use a plugin like <strong>AutoTools</strong> or <strong>Rotation Locker</strong>.
I think a combination of <strong>AutoTools</strong> "JSON Read" action to get all the links that have the words "Icon" and "Free" in the titles (from https://www.reddit.com/r/googleplaydeals/.json) and then just have Tasker loop through the links, opening each in the Play Store, and using AutoInput as /u/jmot205 mentioned to click Install / Cancel / etc.
The plugin <strong>AutoTools</strong> has a "System State" condition to check if media/music is playing, and will return true/false to use in your If
condition.
There is a beta available for free as well.
Also as an alternative, the check can be done using Java code - just search this subreddit for "Music Playing".
You can also use AutoTools plugin for Tasker by Joao. It has time span / date functions manipulation ( substract / add ) and many more. It's a paid app, but it worth's every cent. :) so you can go with your way calculating difference between times like 08:00 -> 16:00 or you can use the Tasker %TIMES if you need only the result hours / minutes.
You can set a Profile using State > Power > Battery Level so that when your battery level is between, say, 0% and 20% it'll run the tasks its given.
As for setting Power Saving and Location services, you won't be able to accomplish this through Tasker alone without Root (from what I've found, though I may be wrong). You can, however, debug via USB to allow an app like Auto Tools to change your "Secure Settings," such as location and battery saver.
There are indeed some easy ways, without doing a ton of "variable splits".
One would be to use the <strong>AutoTools</strong> plugin with its "HTML Read" (which has an 'Easy Setup' option) as well as "Regex" actions (if you're handy with regular expressions).
Another way is to use a Javascriptlet Action in Tasker with getElementById
and I think /u/plepleus or /u/JustRollWithIt could provide the specific syntax to pull those fields from %HTTPD if it contains the code you posted.
Yes can be done using <strong>AutoTools</strong> "Connectivity" Action, which can query all Bluetooth devices and return all the info about them.
The info is returned in JSON format, and thankfullly AutoTools comes with a "JSON Read" Action, so you can instantly get the arrays to put into a "user select" list. You would then put the paired Device Name/MAC info into a Scene List, or an AutoTools Dialog, and let the user pick.
Also the AutoTools beta is currently a free download.
Are you looking to export your Project/Task as an APK with App Factory for use on any device?
Or do you plan to have Tasker installed on any device running this? Because a good solution would be to have an "initial setup" portion of your Task, that uses the plugin <strong>AutoTools</strong> with its "File" dialog, whereby on any device the user can surf to where they want files written, and then Tasker saves that path to a Global Variable for use always in the future on that device.
Does your car have Bluetooth? Whether or not you're connected to it?
As you can add an additional Profile Context of "BT Connected" or use the "BT Near" context if you may or may not be connected.
EDIT: Re-read your post and as you want it to turn BT on, assuming your car does have BT. If so, you'd leave the single trigger condition of AC Power, have it turn on BT in the Task, then add a Wait Action (for maybe 10 seconds) and before proceeding with the rest of the Task have it check if its connected to the car. If so, continue with the screen timeout actions. If not, then turn BT back off.
You may need to create a separate Profile to set a Global Variable of whether BT is connected to the car. And you'd check for that variable after the Wait action expires, since there's no pre-existing global variable in Tasker that contains what BT device is currently connected. As another option <strong>AutoTools</strong> plugin does have this ability to return what BT device is connected.
The plugin <strong>AutoTools</strong> has this built into one of it's actions.
There's also a number of Javascripts (just search "words to numbers javascript") on the web that do the same type of thing. You'd just have to put that code into one of Tasker's "Javascriptlet" Actions and test it to see if performs how you want.
I think may have one somewhere that I remember worked pretty well. If I find will post it.
As mentioned in another reply - checking for an active Internet connection within a loop every few seconds if likely the best solution.
Do you have <strong>AutoTools</strong> plugin? Under it's Connectivity section it has a "Check Internet Connection" and you could just put that action in a loop and only proceed onward with the Task once it returns true.
You can also do an Http Get Action, etc.
If %title
shows up like that, it means it's empty. So that means it's not getting set, likely because that path is incorrect, or there's some other error in that line of Javascript.
I took a quick look at it, and the path you listed does seem to be correct. I usually use <strong>AutoTools</strong> now to process everything JSON, but I'm sure someone here can provide additional insight.
No its not free. My profile is for Android 7. But there is also a older profile for Android 6 you can both download. But you have to adjust some actions to get it to work. But everything is described in the text. Hope you will be satisfied.
http://forum.joaoapps.com/index.php?threads/reboot-profile-without-root.10018/#post-22048
Link to AutoTools.
https://play.google.com/store/apps/details?id=com.joaomgcd.autotools
Only a suggestion spend the money. It's worth every cent you pay for it. And the Dev is really helpful and all of the autoapps are under active development.
Very welcome!
And yes - in whatever Task you have that runs when the screen is off you can set a Variable that contains just %TIME
which is the time in 24-hour format like 22.34
Alternatively you can use the variable you already have (That cotains %TIMES
) and use the Action Variable Convert > Seconds To Datetime
and that allows you to convert the absolute seconds to a more 'human readable' date and time.
(More information about lots of Tasker variable on the Variables Reference Page) As another option the <strong>AutoTools</strong> plugin has some sophisticated time formatting features.
This is absolutely possible and fully supported by Tasker. You would just use a Global Variable containing the date/time (in UTC Seconds format) that you want the Profile to become active, and put the variable name(s) in a Time Context Profile.
You many need to do some conversions to get that future date/time into that format, but Tasker can do it for you, using the "Variable Convert" action, with its functions like "Datetime To Seconds". Another great tool for calculating future datetimes this is the <strong>AutoTools</strong> plugin.
For additional detail and info, go into the Time Context for a Profile and in the upper-right click on the 3-dot menu then "Help-This Screen". It will give you all details regarding using variables instead of absolute specified times.
Have you tried to use <strong>AutoTools</strong> and it's new HTML action?
Here's a post by the developer :-}
> Either I need to be able to get the signal value from both before connecting/switching (best)
The plugin <strong>AutoTools</strong> has a Wifi option under it "Connectivity" section that will return every piece of info about every nearby network even when your device is already connected to a network.
It returns the results as JSON which is easy to parse and get values from, again using AutoTools' own JSON reader. Here is an actual example of the data it returns about each network:
{"wifis": [ { "ssid": "HOME-7788", "seen": 0, "distanceErrorCm": -1, "capabilities": [ "WPA-PSK-CCMP+TKIP", "WPA2-PSK-CCMP+TKIP", "WPS", "ESS", "BLE" ], "numConnection": 0, "mac": "00:1e:e6:e2:71:60", "distanceCm": -1, "bandwidth": "20", "untrusted": false, "channel": 11, "level": -53, "frequency": 2462 },
Of course that's just for one network but if there's 4 networks nearby it will contain the above data for all 4 networks. So using this you can easily compare level(s) and then have Tasker decide what to do. AutoTools Wifi can also connect to the network of your choosing by just specifying the SSID, which can also be input as a Tasker variable. Good stuff.
The simplest way is to use the <strong>AutoTools</strong> plugin with its "Arrays" action. There's a checkbox there for "Vertical Mode" which is made to take data as you have it and returns an array for each column to Tasker.
So this can easily create 4 separate arrays like:
%indexes() %first_names() %last_names() %phones()
AutoTools also has an "Array Merge" feature so you'd then merge the first and last names arrays to get something like %full_names()
.
You would use that variable as the "source" variable for the Tasker Scene Menu.
In that Scene Menu Element there's a tab for Tap/Select, and it's there you'd simply put an action to:
A1. Variable Set: %output_phone To: %phones(%select_indices)
Whereby %select_indices
is a built in Tasker variable that will contain the number of the menu item(s) clicked. So if someone chooses "Jackie Doe" - as that is item 2 on the menu, so it will return the 2nd array item in %phones()
which is 456789123
in your example data.
In a nutshell - that Action generates an array of matches. Whether there's 1 or 120, they're gonna be in the array %arr(). If you click the "?" at the top of the Action you'll see it says:
> "Store Matches In" specifies an array variable..
That's just the way Tasker's dev designed it.
If you really really must have a single variable (as well as far better Regex matching options) use the plugin <strong>AutoTools</strong> with it's Regex action.
Yes, should be fairly straightforward.
You can use the Variable Search action, along with a couple others to get the data, and transform it into variables. So if the text is in a variable named %text:
A1. Variable Search: %text Search: \d+:\d+ Store Matches In: %matches
A2. Variable Set: %time To: %matches1
A3. Variable Split: %time Splitter: :
A4. Wait: Hours: %time1 Minutes: %time2
And with that you've got hours in %time1 and minutes in %time2, which as you can see in A4 can just be dropped right into the Wait Action.
And/or - If you have/use <strong>AutoTools</strong> you can use the Regex action to avoid the searching and splitting above with a regex of something like:
(?<hours>\d+):(?<minutes>\d+)
And then you'd have two variables right away in one action named %hours
and %minutes
to put in the Wait Action.
Best way to check it (and also help build regexes) is to use www.debuggex.com
Make sure to first select "PCRE" from the left side drop down menu. Then just put your regex in the top field, and put/type any sentence you're trying to match in the second field.
It will let you test all permutations of the phrases, and it will also tell you if there any syntax errors in the regular expression. At the very top of the page you'll see it generates a 'flow chart' style view of your regex as well.
Another way to test it in Tasker, once it seems to look good using the above, is to use the <strong>AutoTools</strong> beta plugin. It has a Regex action where you put your regex, then enter your test phrases, and then in a subsequent Action flash all your named output variables to see if they get set correctly.
> I want the scene button to behave like an actual key,
> it should repeat the key till I let go
This would be the main issue. Tasker isn't going to detect the press or long press of the Scene Element until after you let it go. Not sure if there's a solution in Tasker for creating an element like this, perhaps the new <strong>AutoTools</strong> Gestures mode.
The most immediate/definite solution would be to have two Scene buttons. One that starts the key repeat, and another that stops the key repeat.
There may be a way to do it. Depending on what kind of charger it is and/or how it identifies itself as a USB device.
The <strong>AutoTools beta plugin</strong> has a "Connectivity" action that can identify what is connected via USB by serial number, device type, etc.
It's one of those things where you've got to try it and see. The plugin is free right now for full version so should give it a whirl!
Another good way is to use the <strong>AutoTools</strong> beta plugin. It has several Time conversion functions including "Time Span" where if you give it the difference in seconds - it can generate what that then equates to in any units you choose.
Very welcome, and I really like that color picker with Tasker for Zooper project! Cool use of Tasker to basically build an app of sorts.
I do think you'll really enjoy ZW Utilities as well. Also if you'd like to look into other color pickers that can be integrated with Tasker (sort of like different 'Scenes' to adapt in your own Color Picker) - look into the <strong>AutoTools</strong> beta plugin.
In its Dialog action there are two Color Pickers you can launch with Tasker. One that is a color wheel style, and another that is pre-programmed with all the Material Design colors. Could be really cool to add to your existing Task/Scene as additional color select options.
Made a Test Task (using <strong>AutoTools</strong> regex as mentioned) and it works very well.
Import this Task into Tasker and check it out :)
If you happen to use Nova Launcher, you can set up the task for Join to send the current tab to all devices, and under Nova's gestures, use a two finger swipe to trigger the task.
I do something similar when I'm using my phone and copy text to my clipboard, hit the HOME button, two-finger swipe, and then it sends it to my laptop.
If you don't use Nova, you can sign up for the AutoTools Plugin which has a gestures feature... I think you can use something up to like 8 finger taps/swipes or something crazy like that... that works really well! It also has some really cool alternative options for a similar task.
Worth checking out!
Wait, could I set autotools on a timer to change the defaults?
Also, we're talking about "supercharged tasker" autotools, right?
If you have AutoTools, this might help.
Edit: thanks NoAMPBot :D
That's no problem. We can create a button that appears on your screen twice a day which will take you to the website.
Do you have AutoTools installed? An AutoTools web screen is probably the best way but if not then we could use a scene
The big advantage of one made using a webscreen is you can move it around the screen if it's in the way or swipe to dismiss and have it come back after 10 minutes..plus all the other things AutoTools can do. It's a great addition to tasker
There is a plugin for Tasker named <strong>AutoTools</strong> that has a custom Vibration Pattern Creator - where you just tap out the vibration on the screen, whatever pattern(s) for whatever vibration(s) you want.
The plugin <strong>AutoNotification</strong> also contains this tool, and has a lot of features related to creating and responding to notifications. Either plugin should help you easily accomplish creating the patterns.
The Take Call action is very unpredictable thus not guaranteed to work on all devices. If you already have it you could try the AutoTools plugin Take Phone Call action and see if that works:
Add action > Plugin > AutoTools > Connectivity > Phone > Take Phone Call
You could try to play with AutoTools connectivity section. I don't use it, but (if I'm not wrong) it can give you WiFi near signal strength and choose/force connection to specific WiFi etc.
The easiest way I could see you doing this is by using the AutoTools plugin Chrome Custom Tabs action
Eg:
Test (941)
A1: Flash [ Text:Welcome to Calvin & Hobbes! Long:Off ]
A2: AutoTools Chrome Custom Tabs [ Configuration:Url: http://gocomics.com/calvinandhobbes
Toolbar Color: #FFF57F17
Enable Url Bar Hiding: true Timeout (Seconds):3600 ]
A3: Flash [ Text:Calvin & Hobbes say: "GOODBYE! Come back tomorrow!" Long:Off ]
A4: Say WaveNet [ Text:Calvin & Hobbes say. "GOODBYE! Come back tomorrow!" Voice:en-US-Wavenet-D Stream:3 Pitch:20 Speed:8 Continue Task Immediately:Off File: Override API Key: Respect Audio Focus:On ]
You could for example add this task as a shortcut on your device home screen, or add it to your quick settings tiles and launch it whenever you want :)
Try the AutoTools merge arrays action
Eg:
Merging Arrays (961)
A1: Array Set [ Variable Array:%name Values:Antonio,Francesco,Marco Splitter:, ]
A2: Array Set [ Variable Array:%lastname Values:Rossi,Bianchi,Ciccio Splitter:, ]
A3: AutoTools Arrays [ Configuration:Input Arrays: %name()|%lastname()
Separator: |
Item Separator: ,
Names: name,lastname
Output Variables Separator: ,
Merge Arrays: true
Merged Array Name: atmergedarray
Merged Array Joiner: Timeout (Seconds):60 ]
A4: List Dialog [ Mode:Select Single Item Title:Names Items:%atmergedarray() Selected Items: Long Click Task: Button 1: Button 2: Button 3: Timeout (Seconds):30 Use HTML:Off ]
That's a good question. I know that it can by SSID using the <strong>AutoTools</strong> "Connectivity action, but just noticed there's no field there for a password.
Someone here may have some insight how to get this done to input a password along with the SSID in a very direct manner in a single action or two.
However the only way I know of at the moment is to use the plugin <strong>AutoInput</strong> to navigate through the device's Wifi Settings menu and it will input the information as you would if by hand, but of course lightening fast because Tasker is doing it. This method should work on most devices.
The AutoTools plugin connectivity action can do this
https://forum.joaoapps.com/index.php?resources/connect-to-the-best-avaialble-wifi-network.298/
Using scenes no but you could try either 1 of the two apps though
Use the Java Function action and input the relevant information into the specified fields or as an alternative you could use the AutoTools plugin.
Depending on the tasker version you could create another profile using the new Media Track Changed event and set a global variable depending on the music playback state or as stated above you could use the AutoTools plugin.
You need AutoTools or Tasker Settings.
A1: Custom Setting \[ Type:Global Name:multi\_sim\_data\_call Value:2 Use Root:Off Read Setting To: \]
Change the value depending on the sim you want to use for mobile data, 1 or 2
It depends on what you have, you could also use Javascript or if js isn't your cup of tea AutoTools json Read action is a great easy way to do it.
You could use the Tasker plugin AutoTools to open CCT. I haven't actually used it for CCT but it is there. You should install it and then use the Tasker plugin blocks in Automate (just search for "Tasker" in the list of blocks).
I'm pretty sure it the "Bubble" preset that is one of the "Web Screens" you can download and use in the plugin <strong>AutoTools</strong>.
This would not necessarily be best practice as would require a daily reset and won't work if you ever need to reduce it to intervals involving minutes. For native time calculations, one of the easiest methods is to add on to the %TIMES variable having used Variable Convert before and after.
To save yourself a lot of hassle and because it is probably one of the best plugins ever created, most people these days simply use the very helpful time calculator within AutoTools which is worth every penny/cent multiple times over.
Oh sorry, i forgot you need AutoTools, which is from the Tasker Dev himself. I always think this as a part of Tasker, but you need to install it yourself ��
There you have "secure settings" and there "services" and there "input"
As mentioned use <strong>AutoTools</strong> "Connectivity" action. It can give you all info about all detectable networks in JSON format, which you can then parse/use however you want.
Autotools is a plugin for Tasker. Using it, enabling notification access is just a matter of radio buttons. Tasker should be able to do it as well, if you go into Settings - Custom settings, then use the Find wizard, and toggle the app's Notification Access.
Aside from the easier route of AutoTools Secure Settings->Services, you can also dump out your currently enabled with a Run Shell action:
settings get secure enabled_notification_listeners
And then append your desired app with (using the app AutoNotification as an example:)
settings put secure enabled_notification_listeners %output:com.joaomgcd.autonotification/com.joaomgcd.autonotification.service.ServiceNotificationIntercept
If it displays the counts in badges (little circles with numbers in them attached to app's icon) the <strong>AutoTools</strong> > Badges action can likely retrieve them.
The <strong>AutoTools</strong> plugin makes it pretty easy with it's Time Span functions.
You basically enter the birthdate as the start date, and use "now" as the end date, and it will give you days/weeks/minutes/seconds/etc to use in your widget/frame.
You can also use the <strong>AutoTools</strong> plugin and it's "Connectivity" action.
It returns a massive amount of data about all networks.
Just use "Variable Search" action. ~~You'll need to make the Tasker Global variable local first though:~~ (If you're just using Search and not Replace you can use the Global):
A1. Variable Set: %sms To: %SMSRB
A2. Variable Search: %sms Search: \d+ Store Matches In: %number
A3. Flash: %number(1)
Note that the "Store Matches In" creates an array of all matches. If you need more detailed control of regex searching and capturing/named groups/etc. use <strong>AutoTools</strong> Regex.
The action is indeed named "Variable Query" in Tasker. It's in the "Variables" section.
If you want something fancier you can use <strong>AutoTools</strong> dialogs, or <strong>Material Design Plugin</strong>'s Input Sheet where you can get a whole bunch of inputs all at once.
You can use the <strong>AutoTools</strong> plugin with it's "Connectivity" feature to force the connect to whichever device you want, whenever you want.
You mean a page in a browser? Or just in general?
If use the "HTTP Get" action you can specify a web page. Its text/data will appear in the variable %HTTPD.
You can then search that variable for the word(s) you want using the "Variable Search" action.
Another option is to use <strong>AutoTools</strong> "HTML Read" action.
At least you got it working :)
Not sure if you have AutoTools but it's "Arrays" action can handle pops/pushes on multiple arrays all in one action.
If you're using <strong>AutoTools</strong> Regex you can do:
aa(?<matches>[^z]+)zz
Check the box for "Get All Results" and the %matches()
array will have the matches as you specified.
And, the play store link, which u/RenegadeUK seems to have been remiss in mentioning
> Those seconds in the Userguide since cirka 1970 is a joke right?
No. That's actually how time is calculated here in computer land. It's called "absolute time" or "Unix Time". It's the time that is the source that any other formatted times use as a source (in most cases). You can watch it ticking away as well as its conversions happening here.
Tasker has 3 time variables built-in. And two are in Unix time. %TIME
is the current time in 24-hour format, period separated like 14.06
then %TIMES
is the current unix time in seconds, while %TIMEMS
is the current unix time in milliseconds (basically ` %TIMES * 1000).
An easy Task/subroutine you can run to easily get times formatted any way you want (including the ones you mention) is this Task in the Tasker Wiki.
For an extremely robust time display and conversion tool - check out the plugin <strong>AutoTools</strong> > Time actions. It uses Java's SimpleDate Format characters
.
AutoInput is what you'll use to disable/re-enable the volume keys in an Enter/Exit Profile based on your specified app in the foreground. So let's use Gmail as an example:
PROFILE: App > Gmail
ENTER TASK: A1. AutoInput > Modes > Key Suppress > Enable Keys: Volume Up, Volume Down
EXIT TASK: A1. AutoInput > Modes > Key Suppress > Disable Keys: Volume Up, Volume Down
For creating the swiping - AutoInput's Gestures mode is old and somewhat cumbersome in that it overlays and blocks the entire screen with a transparent overlay, preventing you from using the app beneath it for the most part.
So I would suggest one of two things to trigger on the gestures:
Use a Tasker Scene with a transparent rectangle element. Display it in "Overlay Blocking" mode wherever you want to position it over your app. In the rectangle element there's a Tab for "Stroke". You would then put your volume actions in there based on whether the stroke direction (Returned in the variable %stroke_dir
) matches left or right. You would add the "Show Scene" and "Destroy Scene" actions in the Enter/Exit Tasks respectively
OR
Use an <strong>AutoTools</strong> Gestures Screen with a floating image that you can swipe left or right. Or also in AutoTools is the "Web Screen" action that has presets you can modify for swiping. Here is a video that shows an example.
There are a few plugins that produce just about every kind of dialog that Material Design displays, and if you use the material design colors you'll have a real quick way to produce all kinds of popups, dialogs, bottom sheets, nav drawers, etc.
The plugins are:
Here is a thread with a bunch of example pic links. Check them out!
Use AutoTools. It has a connection options that can give you the strongest nearby WiFi, than you can connect to it
If you're looking for ready made dialogs you should checkout AutoTools "Webscreens" ;)
I'm pretty sure you can use <strong>AutoTools</strong> to do this, and you don't need root. AutoTools uses an ADB word-around to let Tasker/AutoTools access secure features and settings like mobile data without needing to root your device.
Regarding having Tasker recognize your location you can use "Cell Near" or "Wifi Near" (even if wifi is off on certain devices), or - with the plugin <strong>AutoLocation</strong> you can create a "GeoFence" for the location.
Yes you can do this. You just need the <strong>AutoTools</strong> plugin with its "Secure Settings" action, and rather than root - just enable ADB access.
Instructions/Tutorial for this process. Also another thread with settings information here.
The one thing you'd have to do (since Airplane Mode is going to turn off the Wifi) is just have Tasker turn the Wifi back on once it engages Airplane Mode, and to prevent the Task looping - have it stop if the variable %AIR
has a value of "on".
AutoTools (Tasker plug-in) has a "force connection" action for Bluetooth.
use AutoTools flashlight action
For an easy immediate Input solution, you can use the <strong>AutoTools</strong> beta plugin's Dialogs.
And another option is the Dialogs/Input Sheets in the <strong>Material Design</strong> / <strong>Snackbar Tasker</strong> plugins.
The AutoTools plugin Toast action allows you to fully customize its appearance; so you could try that :)
Maybe try the AutoTools HTML Read action it also has an option to authenticate the user into a website.
Try using the AutoTools "App Shortcuts" action if you're on Android 7.1 or above :)
Looks like AutoTools has Tasker functionality for screen gestures.
Here's a few very basic and old review tasks I created some time ago where you can view each action manually to see if it fits your requirements.
Times in computer programming are usually represented as "Unix Time" or what's also known as absolute time. Typically in seconds (or milliseconds).
You then take this time and convert it into whatever format you want. For example using the "Variable Convert" action - use whatever variable contains 1535272974
as your Input, and choose "Seconds To Date Time" as your conversion function.
It will output something like Oct 04, 2018 18:15
You'll also see there's some other options in that action for date/time formats. If none of those formats work for you - the plugin <strong>AutoTools</strong> can create any time format you'd like. And/or you can use this Task in the Tasker Wiki.
Regarding images in reddit posts - you can put links to them, but for the most part reddit doesn't allow inline images in subreddits. Have you found a subreddit that has inline images throughout it?
Yes. If you're talking about forcing the connect you'll need a plugin like <strong>AutoTools</strong> to 'demand' your device connects to the speaker. (You can also try the Bluetooth AutoConnect plugin).
Then you'd use a "Media Control" action to start playback in the app you want.
Lastly you'd link the above Task to a Profile (trigger) with a "Time" context and just pick the time you want to have it happen at.
> This caused Tasker to crash and lose about three hours of progress
Bummer. Everyone here has experienced the displeasure at one time or another. Best way to periodically save your progress is to back out of the Scene, either using your device's "BACK" key or the left arrow at the top of the scene, then click the "Checkmark" in the upper right of Tasker's interface.
The back key saves the Scene into the current open Tasker configuration, the checkmark then permanently saves it. I think the checkmark step is really what you want. After that - go back into the Scene editor and continue editing your Scene. Repeat every half hour or so, or whatever makes you comfortable. No need to really do a backup/restore here.
> Also, Tasker crashes everytime I try to export the Scene so I'm really nervous about losing it. Is there a more reliable backup method?
This shouldn't be happening. You may wish to post this to the Google group where Pent (Tasker's dev) hangs out, as this is a technical internal Tasker issue.
> I guess they were snapping to a grid? Whatever the cause, is there a way around this?
Yup. And AFAIK there's no direct way around it, unless you want everything aligned to the grid. Haven't used/configured many Scenes in a while, and I know that the Scene editor was revamped for this latest version of Tasker, so, someone here might have additional feedback/solutions.
>Is there really still no convenient method for building Tasks and Scenes from a PC?
In fact there is now :) Are you familiar with HTML and a little Javascript? If so the plugin <strong>AutoTools</strong> now has a "Web Screens" action which basically lets you lay out 'scenes' using html. Some quick info here and also here.
For more basic Scene type stuff, many folks these days use either AutoTools's Dialogs, as well as the <strong>Snackbar Tasker Plugin</strong> and <strong>Material Design</strong> plugins. These are pretty fast and easy to configure compared to a Scene when your just looking for some basic icons/lists/actions.
If you actually know JavaScript then just go to tasker wiki and read how to set variables with js. Otherwise just get AutoTools
https://play.google.com/store/apps/details?id=com.joaomgcd.autotools
You can use AutoTools Secure Settings to read the Color Inversion state.
The "best" way is debatable, but the easiest/quickest way is using <strong>AutoTools</strong> "JSON Read" Action.
It makes simple to quickly get all the field(s) you need, and even if you need to be logged in or the site requires authentication - it handles that as well.
(Also you can the AutoTools beta for free at the moment if you just want to try it out.)
There are various plugins (for simplification).
This guy did it via Java code: https://www.reddit.com/r/tasker/comments/52p6h6/how_to_check_if_music_is_playing_without_an/
Plugins (requires monies, you can choose from a variety):
There's a really great solution for this, and it involves the use of the <strong>AutoTools</strong> plugin . In Tasker in general - when a parent Task calls the child Task using a "Perform Task" Action, there's two fields available to send data over to the child Task - %par1
and %par2
.
Typically with just two fields you'd think you can only send two values, but the "AutoTools > Text" action makes it simple to send unlimited variables. You just put the variable names with the percent sign in %par1
and put the same variable names without the percent sign in %par2
You can then use the "AutoTools > Text" Action in the child Task to instantly assign them all to be available in the child Task just like they were in the parent Task. Example:
TASK NAME: "Parent Task"
A1. - A9 (Assume variables have been set in these Actions with var names: ) %first_name %last_name %address %age %height
A10. Perform Task: "Child Task" %par1: %first_name,%last_name,%address,%age,%height %par2: first_name,last_name,address,age,height
And now for the child Task that will receive the data/variables:
TASK NAME: "Child Task"
A1. AutoTools Text Text: %par1 Variable Names: %par2
A2. Flash: The person named "%first_name %last_name" is now %age years old, and is currently %height meters in height.
And you'll have those variables along with all the others available using that single AutoTools Action in A1 of the Child Task.
Now to RETURN DATA back into the Parent Task - you would use the Task > Return
action in the Child Task:
TASK NAME: "Child Task"
A1. AutoTools Text Text: %par1 Variable Names: %par2
A2. Variable Set: %new_number To: %height*3 Do Maths: On
A3. Return: %new_number
And then the parent Task will continue on, now having the value of %new_number
available. It would be a lot better if there were two Return
fields just like there are two %par
fields.
But it's easy enough to use "AutoTools Text" in the Parent Task on a set of returned vars/values by combining them all in the Return action field (since there's only one Return field), then splitting them up again in the Parent Task. I think this is what you were referring to as an "include" and I use this method quite often:
TASK NAME: "Parent Task"
A1. Perform Task: "Child Task" %par1: <empty> %par2: <empty> Return Value Variable: %return_data
A2. Variable Split: %return_data Splitter: ||
A3. AutoTools Text Text: %return_data(1) Variable Names: %return_data(2)
A4. Flash: The %item is %color and is %height meters high.
Of course the "include" or the Child Task needs to send this data over when called via the Return action to send the values/names in a single field:
TASK NAME: "Child Task"
A1. Variable Set: %item To: house
A2. Variable Set: %color To: red
A3. Variable Set: %height To: 10
A4. Return: %item,%color,%height||item,color,height
And that's it!
In Tasker itself there isn't an array function for this (you can see all functions at the very bottom of the Variables Reference Page), and so the main way would be as mentioned in another reply to loop through the indexes.
However using plugin <strong>AutoTools</strong> "Arrays" action - this is easily done by using the "Filtering" section and as you can there's a Regex checkbox, and you can name your output array that will contain the results.
The plugin <strong>AutoTools</strong> with its "Dialog" Action has a full Calendar dialog (pic), that can be setup to display any date / date range along with configurable visual aspects such as color, etc.
The user simpy chooses whichever date(s) and AutoTools returns the values to Tasker :) The AutoTools beta is a free download, should give it a try!
Yup. The plugin <strong>AutoTools</strong> has an HTML Read feature, as well as a Regex Feature, and...a JSON Reader.
All of those actions accept a web url as input, and have the ability to auto-login to websites like reddit and maintain the login data, so everything is always authenticated.
The best way to pull information from reddit, IMO, is to use the JSON output. For example add /.json
to the end of any subreddit to get the JSON output. Example: https://www.reddit.com/r/tasker/.json
Also there's an AutoTools beta available for free right now, so go ahead and download it and give it a try!
Yes <strong>AutoTools</strong> should be able to do these types of things without root.
This thread can provide a list of custom settings that AutoTools can access.
And here is a guide to the general overall setup to get access to all those setting through AutoTools and ADB. (there's video at that link as well).
Yes as mentioned use %TIMES
as it always contains the current datetime in UTC Seconds.
Makes it easy to simply compare one number to another. So if 24 hours has elapsed that would be 86400
seconds.
Another option is to use <strong>AutoTools</strong> as it has some greate date/time features that offer other comparison options.
In looking at your specific use case - you may have to use a combination of these methods if you wanted to get more exact on what 'yesterday' means, i.e. does it mean 24 hours ago, or would it mean 11:58pm vs 00:02am today.
I've just tried AutoTools and it works with Automagic. Apart from that every "Tasker plugin" worked with Automagic for me.
Plugin <strong>AutoTools</strong> now has a Call Answer action that doesn't require root, just the phone permission.
Custom Settings might as well not work. Get AutoTools
copy paste
Find the name of any Setting on your system to use with this action
Disable and enable your lock screen at will (No Root!)
Turn GPS on when in Google Maps, turn it off otherwise (No Root!)
Change Animation Speed with a Quick Tile on Android 7 and Above
Change input keyboard depending on situation
Set Screen Orientation
Also see for me, change autotime and autodate. Not date yet but securetask can, but it required adb so what's the point. Bluetooth. Other than outright changing the time, and I don't know about mobile cuz mine is always on. Using secure settings is like opening a lock with any random key, it might work but probably won't. It's hoping the device left an easy access. AutoTools Secure Setting Action is like a user friendly digital lockpick with handy LED readout display. First setting, click it, go change your setting, come back and click again. It likely tells you what was changed, what it was changed too, what the values are, and sets all of that up as an action. Save and try. (Secure Task and Wireless ADB stuff is like opening it with a hammer)
​
​
​
​
I also use Secure Settings by intangibleobject. It's outdated and I think Autotools has everything you need, but for some reason my stuff doesn't work when i get rid of it.
Maybe use an AutoTools Webscreen?
If you have AutoTools, you're in luck.
You can follow this neat article or this youtube video.
You could checkout the AutoTools plugin HTML Read action.
Checkout the AutoTools plugin Webscreen action :)
Try the AutoTools Webscreen action; YouTube Player screen preset ;)
You could change settings from swipe to pin and observe the changes in settings values with Tasker. However, the value of the pin code might not be something you can have Tasker change due to the security of the system.
Observing the changing settings with Tasker would however let you change settings programmatically with Tasker. You need the autotools secure settings action for this. It has the permission assistant function to help you find the settings and change it programmatically.
https://i.imgur.com/CRojM1I.jpg https://i.imgur.com/tZ9bj2X.jpg
https://play.google.com/store/apps/details?id=com.joaomgcd.autotools
This requires AutoTools to function:
https://play.google.com/store/apps/details?id=com.joaomgcd.autotools
As advised, I'd like to share a Tasker project that will give Android users notifications of Covid-19
https://www.reddit.com/r/tasker/comments/fds3qd/task_international_covid19/
Tasker is a paid app, but can be gotten for free for 7 days; https://tasker.joaoapps.com/download.html and requires a plugin that can be trialed for 30 days free; https://play.google.com/store/apps/details?id=com.joaomgcd.autotools
It will provide heads up notifications of new affected areas, new confirmed cases, deaths and recoveries.
Uses arcgis.com for the data.
Stay safe.
Checkout the AutoTools plugin webscreen action.
The AutoTools plugin has an OCR feature that you can use to extract text from an image
Try the AutoTools Sensor action :)
That or you could use the AutoTools gesture action if you already have it.
It's this article.
Off the top of my head the other apps are almost definitely AutoTools and AutoNotification.
AutoTools is a plug-in for Tasker. It can be found here.
You can use the take photo option, and AutoTools has OCR processing.
The way I see it:
Actions that use the core Android APIs and States/Events that stem from Android's common intents (and other monitoring functions/hooks) will be included in Tasker.
Anything that requires a bit of cleverness (some complicated programming or a myriad of parameters or a separate service) will be in a plugin.
(By the way, I think you meant AutoApps instead of AutoTools in your submission. AutoTools is a separate AutoApp.)
Just use the AutoTools Web Screen for Bubble.
You need AutoTools, which is a plug-in from the Tasker developer himself.
There you have secure settings and go to services. You go to input method and see all available keyboards you activated.
Use you existing profiles for S-Pen in and S-Pen out and use a AutoTools secure setting to change to your desired keyboards. In m case from BlackBerry keyboard to Google's handwriting keyboard and back.
If you still need help feel free to ask ��
I know <strong>AutoTools</strong> has SSH function. Here is a thread with some discussion on it from about a month ago.
Times in computer programming are usually represented as "Unix Time" or what's also known as absolute time. Typically in seconds (or milliseconds).
You then take this time and convert it into whatever format you want. For example using the "Variable Convert" action - use whatever variable contains 1535272974
as your Input, and choose "Seconds To Date Time" as your conversion function.
It will output something like Oct 04, 2018 18:15
You'll also see there's some other options in that action for date/time formats. If none of those formats work for you - the plugin <strong>AutoTools</strong> can create any time format you'd like. And/or you can use this Task in the Tasker Wiki.
Regarding images in reddit posts - you can put links to them, but for the most part reddit doesn't allow inline images in subreddits. Have you found a subreddit that has inline images throughout it?
Sure thing! Here is the link to Import the Profile. It's just one AutoShare Profile linked to one Task.
You can assign a specific AutoShare Command to the Profile, but as it is now - it just looks for anything shared to AutoShare with the CalenGoo date format.
The only thing you'll have to do is also have <strong>AutoTools</strong> and go into the main app to the "Manage Web Screens" Section and import the "Material Design Radio List" preset for it to be available in the Task.
Then from any Calengoo entry screen that offers the "Send" or "Share" options - choose AutoShare from the share menu, and the Profile should trigger bringing up the radio button list, and then bring you back to an AutoTools Calendar to confirm it's the right timeframe (you could probably omit this from the Task if you want), and then into Calengoo to the future date, for you to make a new entry.
The plugin <strong>AutoTools</strong> "HTML Read" action should be able to do this. It has an Easy Setup mode as well, where you can select from various data it finds on the page and then it gets the rest of the matches.
> is to also be able to hold and swipe right to go home.
To Tasker those are two separate things. So as you mention - you've to lift your finger first to complete the 'Press' event. Then it will register a swipe.
Basically as soon as your finger is held in one area for more than a brief moment Tasker is thinking it's going to be a long-tap.
Instead of a Scene, you may wish to consider the plugin <strong>AutoTools</strong> "Gestures" which can deal with just about any conceivable presses and swipes. Here is a quick video demo of some of what it can do.
If you're going to be doing data handling, especially pulling data from website HTML, or JSON etc. you should look into the <strong>AutoTools</strong> plugin, it has lot of features/actions to do these things :)
<strong>AutoTools</strong> can do this with its "HTML Read" action as well "Regex" action. You'll have to test it out on your specific site though, since some websites (especially banking ones) that automatically log you out may or may not work with it.
Hm, that is a good point. I am not sure about MacroDroid and Automate, and it's possibly true that you need root for those two.
Tasker has more support and is more powerful, and it's possible to toggle mobile data without root. I believe you need AutoTools. If that doesn't work, you can always use AutoInput to "push" the button to toggle mobile data on/off.
Let me give it a try on my device.
As another way to force a connect to a specific wifi network - The plugin AutoTools can do this with its "Connectivity" action.
It can also deliver to Tasker a list of all available networks. So even if your gym's Wifi's name changes, as long as there's something consistent about it (i.e. it might be gym-129
one day and gym-445
another day) - you can still have Tasker make the connect.
Do I have to install Autotools from here?
Well, I installed it, but I don't know how to make the task "autotools flash off". When I open Autotools plugin, I don't see a camera option.
Pretty straightforward. Regarding turning mobile data on/off - depending on your device/OS/ROM you may need root or a plugin like <strong>AutoTools</strong> to do it.
You'll know if it's unavailable in regular Tasker if it shows up in red font in Tasker.
TASK:
A1. Wifi: On
A2. Wait: 10 Seconds
A3. If %WIFII !~ CONNECTION
A4. Wifi: Off
A5. Mobile Data: On
A6. End If
The "Net" action category contains those Wifi/Mobile Data actions.
yes. it's a plug-in for tasker that expands functionality.
https://play.google.com/store/apps/details?id=com.joaomgcd.autotools
Yes, the plugin <strong>AutoTools</strong> has a "Connectivity" action that can return all information about all nearby networks. If the MAC address you're looking for appears in the data - you can again use AutoTools to force the connect to the related SSID.
Example of Wifi data from AutoTools:
{ "ssid": "HOME-762", "seen": 0, "capabilities": [ "WPA-PSK-CCMP+TKIP", "WPA2-PSK-CCMP+TKIP", "WPS", "ESS", "BLE" ], "distanceErrorCm": -1, "numConnection": 0, "mac": "00:1d:d6:e2:71:30", "distanceCm": -1, "bandwidth": "20", "connected": true, "untrusted": false, "channel": 11, "level": -41, "frequency": 2462 },
AutoTools Plugin with Tasker
There is indeed a plugin route. <strong>AutoTools</strong> and it's "Connectivity" Action can return all the details about all available Wifi networks. It returns it in JSON format. And if you don't know how to parse JSON no worries, AutoTools has a JSON reader built-in ;)
Haven't used the sliders in a while in a Scene, will have to take a look.
> theres no color picker,
Use <strong>AutoTools</strong> Dialog action, select ""Color" and it pops up this color picker and returns the value in hex.
If you need it in RBG you can use one of these javascripts in a Javascriptlet action to then get RGB.
I don't think "AutoNotification Intercept" passes a named regex group into the linked Task. It only generates the big list of variables you see in the list on the Config Summary screen (%antitle, %antext, etc).
If you want to then create variables via Regex - you can use the plugin <strong>AutoTools</strong> with its "Regex" action. It is very thorough in what it can do via Regex. There's really nothing similar in stock Tasker, unless you do it via a Javascriptlet or something.
So if you feed %antext
into the AutoTools Regex action it will return to you %wacnt
to use subsequently in the rest of the Task.
It's an action in AutoTools :)
<strong>AutoTools</strong> can do this with it's Secure Settings > Display
action.
Or for something super-specific to just this purpose - <strong>Rotation Locker</strong> works on its own, as well as a Tasker plugin.
Are you looking for floating bars like this or this?
<strong>AutoTools</strong> "Web Screen" action has a bunch of presets like these. Including custom configurable edge-swipe triggers, which can be transparent/invisible if you want.
Another option is the <strong>Material Design</strong> plugin, which has a built-in "Sidebar" action identical to the type in the Pocketables article. It also contains the edge-swipe triggers.
No root required for either :) Also the "Gestures" mode in AutoInput is sort of a legacy feature at this point. The "Gestures" mode in AutoTools replaces it with a better implementation.
Oh, another good way to go about it is to handle the regex processing in Tasker with a setup. So in AutoVoice just set your filter for:
Set timer (?:to|for).*
Then have Tasker handle which format it finds:
If %avcomm ~R <one regex filter>
actions here
Else If %avcomm ~R <a different regex filter>
other actions here
End If
Then the last thing left to do is extract variables from whichever sentence format is recognized. The only easy to do this is with "<strong>AutoTools</strong> Regex" action. Do you have AutoTools?
It would be in there you'd have your named regex groups that create all the variables. I think this would solve every problem you're encountering :)
Secure Settings has been abandoned by it's developers. Last update to the plugin was 3 years ago. So, many of the actions may not work anymore.
For something newer and better, try <strong>AutoTools</strong> which has its own "Secure Settings" section.
And if you want to completely lock the rotation into landscape (no matter which way the device is turned) both <strong>AutoTools</strong> and <strong>Rotation Locker</strong> have Tasker integration as plugins to do this :)
In the spinners and the menu's they have their own mini-scene inside them, as odd (and often annoying) as that is. So when you go into edit a menu for example, you'll see a listing for "Item Layout". To the right of that is a faintly visible rectangle and a magnifying glass icon. Click that white rectangle next to the magnifying glass.
That will bring you into the "Item Edit" mini-scene. It is in here you can adjust all things you're talking about. You can see in the pic it's set on top of my device's default wallpaper. When you click the hand icon in the lower left, it will bring up that "Touch Mode" menu also seen in the pic.
If you choose "Resize" you'll get an "A-Z" icon when pressed you can choose which sub-element to deep edit. For example if you click on Label you'll get to edit the Label Text (color, size, background, etc).
In this example pic of what can look like when fully modified, you can see I've set it to a hideous yellow text on red background, with a 'puzzle piece' icon. Are you confused, depressed, or annoyed yet? Welcome to the club ;)
In fact the way this works has a bunch of errors it seems in the latest version. I haven't dug in here in a long time until this post prompted me to, and a lot has changed. For example the "A-Z" icon at the bottom only appears when you choose "Resize" when in fact it should show all the time (as it does in the main Scene.
I'll report a bunch of little errors I found to Pent. However if you're looking for an easier way to build lists and menu's etc. you may want to look into <strong>AutoTools</strong> "Dialogs" and "Web Screens", as well as the <strong>Material Design</strong> plugin. Will make your life 1000 times easier when dealing with creating these kinds of things.
The best application for these more complicated swipes (that involve more than one direction, or configuring a long tap for a specific time) is the <strong>AutoTools</strong> plugin for Tasker.
You have the ability to create all kinds of custom gestures with it's "Gestures" and "Webscreen" Actions. It can even register multiple finger presses [video] and complex gestures including rotating finger gestures.
You could try searching the Play Store for "Media Utilities" for a start. It's sort of ancient and is basically abandonware but worth a try for free.
You could also try Googling for those apps along with "album art" and see where those apps may store the art, if indeed it's stored in a folder outside the app.
The plugin <strong>AutoTools</strong> has a new "Media State" and "System State" actions return a lot of info about the current track, that could be used to get the album art or album thumbnail.
Glad to know you've got it working.
> I want to also show the album art, I tried using almost all variables that have image or icon in the name, but only flashes the variable name
You can't flash any images with Tasker's "Flash" action - only text. Is that what you were trying to do? If you want to do something like that specifically with a Toast/Flash - you can use <strong>AutoTools</strong> Toast Action to Flash images.
However there's many other ways to display images. In Tasker itself - showing a Tasker Scene is the main option. If you use the Image Element, and put one of those AutoNotification variables in there for the source (that you say contains icon/image info) you'll be able to see it.
There' s a lot of other options involving various plugins. It really just depends how you imagine it's going to be displayed.
Maybe AutoTools can help
I think you'll find a lot of the same functions in <strong>AutoTools</strong> "Secure Settings" section, where root may not be needed, just ADB.
If you do have root - there's a set of add-ons for AutoTools named "AutoTools Root" somewhere as well.
Yes. Root is not required if you use AutoTools.
To bring another perspective, as the regex implementation in Tasker's "Search Replace" is far from ideal, and somewhat of a PITA, using the <strong>AutoTools</strong> Regex action can save you a lot of time and headaches.
Regarding Tasker's regex - it doesn't accept named groups, which means you can't name your variables in the regex. Also because of that Tasker makes you use "Look Aheads" and "Look Behinds" to isolate data. (that (?<=)
syntax). Further when it finds all/any matches - Tasker stuffs them all into one array.
AutoTools solves that by letting you get your matches and assign them all to individual variables in one Action. So a Regex would look like:
Your card ending in (?<card_num>\d+) has a balance of USD(?<balance>[\d.]+) as of (?<time>[\d:]+(AM|PM)) on (?<date[^.]+).
And after running that one AutoTools Regex Action the following variables would be already set and labelled in Tasker with the following names:
%card_num %balance %time %date
Of course while you may not need all that info in this example, it illustrates the drawbacks of trying to fiddle with Tasker's built-in regex handling.
I also have a Note 4, so I'm aware of the issue you're talking about.
The best solution for detecting nearby BT devices would be to use the State > BT Near
Profile. You'd likely need a separate Profile for each device being near or not, and in each linked Task(s) - you'd set a Global Variable for each device designating if it is near or not via Enter/Exit Tasks.
Example:
PROFILE: State > BT Near: (your Headset name)
ENTER TASK: A1. Variable Set: %HeadsetNear Value: 1
EXIT TASK: A1. Variable Set: %HeadsetNear Value: 0
Then in your 'main' Profile/Task - When bluetooth is turned on, the Task will look at those Global Variables, and based on the results Tasker will connect to a device. You can use Secure Settings but <strong>AutoTools</strong> is likely even better.
You'd have to create the main Task with some kind of 'Priority List' order since if there's 2 or 3 devices all nearby, you'd need to specify in the Task which take priority. So the main Task would look like:
MAIN PROFILE Event > Variable Set: %BLUE Value: on
LINK TO TASK: A1. If %HeadsetNear = 1
A2. AutoTools > Connectivity > Bluetooth Connect (your headset)
A3. Else If %CarNear = 1
A4. AutoTools > Connectivity > Bluetooth Connect (your car)
A5. Else If %SpeakerNear = 1
A6. AutoTools > Connectivity > Bluetooth Connect (your BT speaker)
A7. Else
A8. Flash "No Devices Are Available Nearby"
A9. End If
Cool. I did some experimenting with it for general testing purposes, and for some reason when you're trying to get temp.min
or temp.max
there is some issue putting that in the Javascriptlet.
Try looking at the variable %Forecast
and see if that is set? It should be.
A good solution to replacing the Javascript JSON parsing aspect is to use the plugin <strong>AutoTools</strong> with its "JSON Read" action. Tested and works perfectly with this API and all fields.
From a different perspective, if you just want it up and working, <strong>AutoTools</strong> has an excellent and easy to use JSON Reader/parser.
> It's all well and good but...
Actually it isn't, since most of those Tasks/Profiles in the Wiki are ancient. The one you mention was last updated in 2011. That's 6 years ago. So much has happened since then that the variable splits in that Task look like absolute madness, I'm surprised it even still functions lol.
> I'm kind of at a loss for how to do it though. I just don't understand the logic behind the variable split process so I can't dig down into it very far. Can anyone give me some pointers?
The main pointer would be to rebuild the Task using the newest methods and Tools in Tasker to extract the data you want from that link. One of the easiest methods would be to use the plugin <strong>AutoTools</strong> with its "HTML Read" action. It has an easy setup sequence to grab data from web pages.
However, if the Task/Profile seems to work overall, and you just want to fix that one aspect of it - what is the name of the variable that contains that data?
Let's assume for this example it's called %temp_block
relating to that block of text with the temperature in it. If you just want to extract the 17
or whatever number is in that position, you can use Tasker's "Variable Search action":
Variable Search: %temp_block Search: [0-9]+(?=&deg;C) Store Matches In: %matches
And then the array variable %matches1
will contain 17
or whatever the temperature is in that position. Just make sure to put that exact regular expression in the search field:
[0-9]+(?=&deg;C)
And that translates in plain English roughly to "one or more numbers followed by the text &amp;deg;C
"
Not sure there is a way, since as soon as the Scene is removed from the foreground it's going to be essentially "destroyed".
Some of the dialogs/sheets/activities in plugins like <strong>AutoTools</strong> and <strong>Material Design Plugin</strong> will remain in the Recent Apps list and can be switched back to, but the number and type of elements in those isn't as extensive as what you can do in a Scene layout.
What exactly does your Scene contain?
EDIT: If you export your Profile/Task as its own application via Tasker's "App Factory", I think in that case - the Scene would indeed appear as an app in your App List.
EDIT 2: Doesn't look like it will, at least not in Activity mode. Would have to experiment with all the display modes to see if any will remain in the recent apps list.
Sounds like a nougat related issue. Should post this in the Google where Tasker's dev Pent hangs out.
And as \/u\/froryrory mentions - Using the <strong>AutoTools</strong> dialogs or the <strong>Snackbar Tasker Plugin</strong> / <strong>Material Design Plugin</strong> plugins should work fine (and look excellent as well ;).
Best/simplest way is to use the <strong>AutoTools</strong> plugin's "HTML Read" action. It has a simple setup mode where you can pick out what specific items on the page you want it to bring into Tasker. It even handles Authentication for websites that require a login to get to the page you want Tasker to look at.
I think that <strong>AutoTools</strong> with it's own "Secure Settings" section (that doesn't even require root, just ADB access) coupled with the recent "AutoTools Root Add-On" features, can do just about everything the original Secure Settings can.
There's probably some folks here who can point out if there are any differences in the feature sets (where AutoTools is missing something that SS had) and even if that's the case, I'm sure Joao could just add the feature.
Yeah, I noticed that later as well. I finally settled on using AutoTools Tasker Plugin, that solved the issue completely. Let me know if you need any help setting up the task.
You can use AutoTools, which is a Addon for Tasker. If you grant access to Secure Settings via adb command, then you have a lot of settings which you can change and set via Tasker ;)
some examples:
Here you can read about it and have tutorials and more
Quite simple actually, I use this same exact thing to do autobackups to OTG USB.
Just need to use the <strong>AutoTools</strong> plugin, as it has a USB Profile trigger, and then in the linked Task you can confirm the serial number of your exact USB device (so that you could do different things in Tasker based on what device is inserted).
Following that in the Task you would just use the File > Copy Dir
Action to copy the directory to the USB device. And/or you may be able to use FolderSync at that point by initiating the sync via its Tasker plugin.
However FolderSync may only recognize online sources to sync to. Haven't tested FolderSync with USB as of yet.
Variable Split the text message and use AutoTools Regex. At least this is how I would start. There are many greater people who could give greater answers.
Variable Set %bankinfo = %SMSRB
Variable Split %bankinfo; splitter = Til rådighed:
Variable Split %bankinfo2; splitter = DKK
AutoTools Regex where Text = %bankinfo21; Regex = \d{0,3}.\d{0,3},\d{2}
If everything works as I think it will, the number you need will now be in variable named %regexmatch.
Can't be done with AutoInput (or just about any auto-clicker) because mobile browser security is designed to keep all other apps out, and make the browser window inaccessible.
Supposedly on Android N this is much improved, and AutoInput has more flexibility there. Anyways another way to approach it would be to use <strong>AutoTools</strong> with its Regex or HTML Read actions - both of which included login/authentication sections.
However that leaves the plugin logged in to whatever website you're accessing and/or containing your login/password details. So it's a trade off that you have to consider.
You can adjust a lot of these settings without root by using the <strong>AutoTools</strong> plugin and its "Secure Settings" Action.
Basically you use ADB to enable access for AutoTools on your device. Just requires connecting to a laptop etc and again it is not rooting. AutoTools contains detailed instructions on how to do all this.
Not sure if this what you meant though when you said "without unlocking the bootloader" but it's the best way without rooting your device to control these settings.
have a look at AutoTools, it's a swiss army knife plugin with a lot of very useful features. Not to mention the dev is the best too. Very keen on answering requests, questions, and overall providing great support for his plugins. To mention a two actions of the AutoTools plugin partaining to this, Regex (can take whatever address you're using in an HTTP GET action) & JSON Read. Both action have an authorization part where you auth it once and you're set. Basically, what you can do is do a Regex in place of your HTTP GET, then use the Result from the Regex (the entire json string that's returned) in the JSON Read action. It does all the heavy lifting for you :)
I'll look into a solution for this. It becomes a bit more complicated when you have multiple words and/or multiple hashtags. Do you by chance have the <strong>AutoTools</strong> plugin installed?
Yes a For Loop would do it just fine. If your values are in %array()
you would do:
For: %number Items: %array()
Variable Add > Name: %output Value: %number
End For
And now %output contains the sum of all the numbers.
You can also do this all in one single Action with the <strong>AutoTools</strong> plugin via its Math action.
Not exactly what you are asking for, bur Auto Tools works with JSON. Maybe u/joaomgcd could work it into the app?
Have you tried <strong>AutoTools's</strong> HTML action? Here's a post describing it by the developer :-}
I think it's set at one level. There's a new more advanced Gestures overlay in <strong>AutoTools</strong> that has at least 2 levels of sensitivity, along with multi-finger tap and rotation detection, etc.
<strong>AutoTools</strong> is another option if you are looking for dialogs.
In regards to your post, it would be A lot easier to use the <strong>AutoTools</strong>. It has a built in action for sate formatting. :-}
Cool video, thanks for posting.
For anyone looking for the <strong>AutoTools</strong> plugin can follow that link, and note it's still in beta so will have to sign up for the beta testing (quick and easy).
Checked out some of your other videos (like the AutoNotification Timers one) and they seem well done and easy to follow. As time goes on and you get a good collection/series of videos going, we can add them as resource in the right sidebar under "Learning Guide Links".
It might be possible with the new Secure Settings action avalible in the AutoTools (Beta Link, Community link, Playstore link) plugin.
It's currently in beta so it's a free download, just gotta 'sign up' for the beta program. Link - <strong>AutoTools</strong>
Here's the links for AutoTools (Beta Link, Community link, Playstore link). You need to sign up for the beta and join the community :-}
Can you clarify on exactly what this is?
Because when you say "AutoTools" that usually refers to the <strong>AutoTools</strong> beta plugin by JoaoApps.
Is this related to that plugin or to something else entirely?
(I don't know how the Total Launcher dialogs look like but otherwise check out AutoTools (Beta Link, Community link, Playstore link) it has and action to create fully customised dialogs).
Okay so, The task should look something like this:
A1. Media Volume ~ 0 A2. Flash ~ Connected A3 UI Query (no setup is necessary) A4. If %aiapp !~R Mediaapp1|Mediaapp2|Mediaapp3 A5. Open Total Launcher dialog A6. End If
EEK?! lol
In that case, to that Task/procedure, just add an <strong>AutoTools</strong> encryption action when saving the file. And a decryption Action when reading the file.
You can have Tasker prompt you to manually enter the key (or part of the key) so it's not stored anywhere, and all your 'secret' Globals will be safe in an encrypted file wherever you store it ;)
AutoTools is what should've been linked. Whether it addresses OP's issue, I do not know.
There's a few methods. The Run Shell method as described in other posts here. You can also run a Javascriptlet with any of the code for time/date formats that are all over the net. Or there's a good pre-made Task in the Tasker Wiki that also uses a single Javascriptlet.
For the ultimate time/date control using all the Java Simple Date Formats, you can use the new <strong>AutoTools</strong> beta plugin, with it's Time/Date Format action.
There is nothing in Tasker itself that can detect a two-finger swipe (or that can distinguish it from a one finger swipe, etc).
There are some plugins that can, such as Gestures Mode in the new <strong>AutoTools</strong> beta plugin.
Don't think it's possible using the built-in method however you can retrieve it using the AutoTools plugin.
Nice!
Just a note: the other successful way of doing this but with the use of a plugin is by using AutoTools (Beta Link, Community link, Playstore link).
It has a system state action that also returns true/false if any audio is playing or not.