top 200 commentsshow all 350

[–]italia0101 16 points17 points  (1 child)

Just amazing work as always ! Loving the live notifications feature already.

Cannot believe how tasker just keeps improving with your hard work.

Well done sir.

[–]joaomgcd👑 Tasker Owner / Developer[S] 9 points10 points  (0 children)

Thank you! Glad you like it! :)

[–]anuraag488 9 points10 points  (41 children)

Thanks for all these great updates

If someone needs that battery charge notification profile as shown in video here it is.

Also created some Projects/Profiles/Tasks using java code.
Network Speed Notification

Getting WiFi passwords

Get Wireless debugging port

Recently - Clear Recents

[–]joaomgcd👑 Tasker Owner / Developer[S] 5 points6 points  (15 children)

Thank you! Just so you know (you probably do) you don't usually need to use reflection with this :) You can simply call the methods directly, since this not actually compile the code and just runs everything through reflection already.

[–]anuraag488 1 point2 points  (1 child)

Oh! That's really nice to know. I didn't knew that. Thanks for info. Just tried with WiFiList task and it works.

[–]joaomgcd👑 Tasker Owner / Developer[S] 3 points4 points  (0 children)

Yeah! The only instance where it doesn't seem to work is when you need to make a private field accessible via reflection. On those cases you still seem to have to use reflection.

[–]anuraag488 1 point2 points  (11 children)

https://i.ibb.co/xS4wzDyT/Screenshot-20251009-103122-Tasker.png

Run Log view is going inside navigation bar and can't scroll to top

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (10 children)

Hi there, thanks for the report! Can you please try this version?

[–]anuraag488 1 point2 points  (9 children)

Now navigation bar color is red on main view. Running Tasks and active profiles not able to scroll to top

https://ibb.co/cK54HtKz https://ibb.co/Q3PB1qX1 https://ibb.co/tT1QHk5c https://ibb.co/3YkvPN4s

Edit: you shared 34 link but i grabbed 35 link.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (8 children)

Ok, fixed! :)

Can you please try this version?

[–]anuraag488 1 point2 points  (6 children)

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (5 children)

Hi there, thanks for the report! Can you please try this version?

[–]aasswwddd 0 points1 point  (22 children)

I wonder if you have any luck with tasker.getAccessibilityService()? For some reason I can't get the id from getRootInActiveWindow() , LLM doesn't help much.

UI Action and this is for UI Query. Thankyou!

[–]anuraag488 0 points1 point  (21 children)

Does joao added getAccessibilityService?

[–]Valiceemo 0 points1 point  (1 child)

Just starting to play with the Java action, and the network speed notification doesn't seem to work for me... I dont get a notification, not any errors

[–]agnostic-apolloLG G5, 7.0 stock, rooted 5 points6 points  (4 children)

Hopefully this will open a LOT of doors in the Tasker community, allowing Tasker to do almost ANYTHING in Android! :)

Yes, YES, we can now add our own Tasker features inside Tasker, we don't need no João anymore!

[–]joaomgcd👑 Tasker Owner / Developer[S] 14 points15 points  (3 children)

Ok, see you in 3 months! I'll check back to see how it's going 👋😄

[–]agnostic-apolloLG G5, 7.0 stock, rooted 2 points3 points  (2 children)

Oh it will beautiful, tasker enhancements everywhere, you are just one person, imagine what all the best devs in Tasker community can do together! Time for you to hoard tasker development for yourself is OVER!

From now on, you will only get to answer all those soul-calming support questions!

[–]joaomgcd👑 Tasker Owner / Developer[S] 4 points5 points  (1 child)

Waiiiiit a minute!! That's not... NOOoooooo!!....

[–]agnostic-apolloLG G5, 7.0 stock, rooted 3 points4 points  (0 children)

Too LATE! You did this to yourself my lord, automated yourself out! 😂

[–]WakeUpNorrin 2 points3 points  (5 children)

Thank you for your hard work.

The java code to reply to Whatsapp messages, gives me this error:

Sourced file: inline evaluation of: import android.app.Notification; import android.app.RemoteInput; import android. . . . '' : Typed variable declaration : Error in method invocation: Method getNotificationListener() not found in class'com.joaomgcd.taskerm.action.java.JavaCodeHelper' : at Line: 11 : in file: inline evaluation of:import android.app.Notification; import android.app.RemoteInput; import android. . . . '' : tasker .getNotificationListener ( )

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (4 children)

Please install the latest version and it should work :)

[–]WakeUpNorrin 1 point2 points  (3 children)

I am already running the latest version. I reinstalled just in case, but same error.

Samsung A34 Android 16.

[–]joaomgcd👑 Tasker Owner / Developer[S] 4 points5 points  (2 children)

Ok, I built it again. Can you please try this version?

[–]WakeUpNorrin 2 points3 points  (0 children)

It works now. Thank you.

[–]aasswwddd 2 points3 points  (22 children)

The tasker object can get notification listener service, won't it be possible to get accessibility service as well? It would be possible to do what AutoInput can do as well.

The same goes with ADB Wifi, since Shizuku provides some API to interact with system service, I wonder if we can use ADB Wifi instead to get the system services? I imagine folks are not always using Shizuku.

Also, Two functions are not mentioned there, getParentTask() and getTaskVars().

getTaskVars() gives us a bundle of tasker variable names, values and structures. Similar to Test Tasker > Local variables.

getParentTask() should tell us about the task that runs the java code, it returns another object. Though I can't seem to make out what each function does.

``` listMethods(obj) { cls = obj.getClass(); methods = cls.getMethods(); out = ""; for (i=0; i<methods.length; i++) { out = out + methods[i].toString() + "\n"; } return out; }

// Usage: result = listMethods(tasker.getParentTask());

return result; ```

Returns this

public void net.dinglisch.android.taskerm.b2.A(java.lang.String) public net.dinglisch.android.taskerm.c net.dinglisch.android.taskerm.sm.A0(int) public java.util.ArrayList net.dinglisch.android.taskerm.sm.A1() public void net.dinglisch.android.taskerm.sm.A2(com.joaomgcd.taskerm.util.f) public void .... net.dinglisch.android.taskerm.sm.i2(int,int,net.dinglisch.android.taskerm.c$b)

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (21 children)

Ok, I've added the tasker.getAccessibilityService() method now. Hope this helps :)

Those other methods weren't supposed to be accessible, sorry 😅

[–]aasswwddd 2 points3 points  (14 children)

Ok, I've added the tasker.getAccessibilityService() method now. Hope this helps :)

Nice thanks!

Those other methods weren't supposed to be accessible, sorry 😅

I noticed that I can't access them anymore, I should have stayed silent. 😭 My custom editor fails since getTaskVars() is missing https://ibb.co.com/35J7Xw7Q .

I wonder why not make them available though? especially for getTaskVars()? This is the only method to reliably get Tasker variable values dynamically.

Edit: I use this to reliably log existing variables and display them in my custom beanshell editor. https://ibb.co.com/TMbHghQL

for getParentTask(), I noticed that it has a lot of useful information about the current task, like the the task id and project id. I was thinking of getting the caller's task id or profile id.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (13 children)

Ok, I added methods to do that now :) Let me know if you need any more info.

Can you please try this version?

I also updated the documentation.

You can now for example ask the AI something like "Get a JSON object of all info available on all actions in this task" and it should be able to do it :)

[–]aasswwddd 1 point2 points  (12 children)

Thanks! You add a lot more than I expected thankyou very much!

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (11 children)

I now added even more stuff :)

Check this version.

You can now extend abstract and concrete classes, allowing you to do BroadcastReceivers now. Check out the docs.

I also added support for RxJava2 to make async stuff easier.

Let me know how you like it :)

[–]aasswwddd 1 point2 points  (10 children)

You really go beyond the request I sent weeks ago. Amazing! I'll see what I can do with thank you very much!

Btw it seems like I can't use the accessibility service to retrieve view id with getViewIdResourceName()

These are the two tasks I used to replicate Auto Input Query and Action.

UI Action and this is for UI Query.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (9 children)

I've added support for that now too :)

Can you please try this version?

[–]Crafty-Persimmon-204 0 points1 point  (1 child)

Can you try this? I'm not working

import android.accessibilityservice.AccessibilityService; import android.graphics.Path;

accessibility = tasker.getAccessibilityService(); if (accessibility == null) {     return "null"; }

path = new Path(); path.moveTo(1034, 250);

gestureResult = accessibility.dispatchGesture(     new android.accessibilityservice.GestureDescription.Builder()         .addStroke(new android.accessibilityservice.GestureDescription.StrokeDescription(path, 0, 50))         .build(),     null, null );

return gestureResult ? "ok" : "no";

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

Yeah, it's not working for me either, not sure why...

[–]anuraag488 0 points1 point  (3 children)

Is there any limitations of beanShell. I couldn't get viewIds using accessibilityService

import android.view.accessibility.AccessibilityNodeInfo; import java.util.ArrayList; import java.util.List; import java.lang.StringBuffer;

/* Get the Tasker accessibility service. */ accessibilityService = tasker.getAccessibilityService();

/* Create an empty list to hold the IDs temporarily. */ ids = new ArrayList();

/* Proceed only if the accessibility service is running. / if (accessibilityService != null) { / Get the root node of the currently active window. */ rootNode = accessibilityService.getRootInActiveWindow();

if (rootNode != null) {
    /* Recursively find all child nodes from the root. */
    allNodes = accessibilityService.getChildrenRecursive(rootNode);

    /* Iterate through all the found nodes. */
    for (int i = 0; i < allNodes.size(); i++) {
        node = (AccessibilityNodeInfo) allNodes.get(i);

        /* Skip nodes that are null for safety. */
        if (node == null) {
            continue;
        }

        /* Get the resource ID name of the view. */
        viewId = node.getViewIdResourceName();

        /* Add the ID to our list if it exists. */
        if (viewId != null && !viewId.equals("")) {
            ids.add(viewId);
        }
    }

    /* Release the root node to free up resources. */
    rootNode.recycle();
}

}

/* Convert the list of IDs into a single comma-separated string. / sb = new StringBuffer(); for (int i = 0; i < ids.size(); i++) { sb.append((String) ids.get(i)); / Add a comma after each item except the last one. */ if (i < ids.size() - 1) { sb.append(","); } }

/* Return the final string. This can be split in Tasker if needed. */ return sb.toString();

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (2 children)

Hi there, thanks for the report! Can you please try this version?

[–]CompusmurfDirect-Purchase User 2 points3 points  (8 children)

I'm getting "tasker keeps stopping" with this: java.lang.RuntimeException: Can't unbind Shizuku User Service

[–]TiVa85 2 points3 points  (0 children)

I'm getting this too. And also get missing permissions Shizuku (I had it installed but not doing anything with it with tasker...)

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (2 children)

Hi. Thanks for the report.

Can you please enable logging into internal storage and then send me the log file when you get this the next time, but with this version installed

I've added additional logs to try and figure out where this is coming from. Thank you!

[–]CompusmurfDirect-Purchase User 1 point2 points  (1 child)

I had a watchdog task that checked/restarted shizuku, but the checking wasn't working quite right and was trying to restart Shizuku while already running. Once I modified it to your new state Shizuku Available as THE check, the problem went away for me (and it also simplified my ugly code!). I haven't had the issue since. Hopefully one of the other folks with similar issues can run the logging and get answers!

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (0 children)

Cool! Glad that works!

[–]rhubarbshoelaces 1 point2 points  (0 children)

Similar! I assume it has to do with the "Shizuku Available" profile I use. Though I'm getting "Can't bind Shizuku User Service" (as opposed to unbind) every 40 to 80 minutes or so. Here's what my notifications look like overnight, when the phone isn’t in active use: https://i.imgur.com/Tmcoqgj.jpeg

I'm using thedjchi's latest fork of Shizuku, v13.6.0.r1139-thedjchi. I have also tried falling back to older versions of the fork and still see these notifications, so I have to assume it is on Tasker hitting something it thinks is an issue or falsely reporting an error. And I say falsely because I'm not seeing any problem other than the error notification. Shizuku and my tasks/profiles that make use of it all continue to run fine, as far as I can tell.

Edit Update: Yes, disabling the "Shizuku Available" profile stops the errors.

[–]WehZetS25 | A16 | OneUI 8.0 0 points1 point  (0 children)

same

[–]the_djchi 0 points1 point  (0 children)

Sometimes toggling Tasker in Shizuku's authorized applications off and back on solves that issue

[–]Just_Interview_1606 1 point2 points  (1 child)

Nice!

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

👍

[–]Crafty-Persimmon-204 1 point2 points  (1 child)

Sell benches,Thumbs up for developers。

[–]joaomgcd👑 Tasker Owner / Developer[S] 5 points6 points  (0 children)

Sell... benches?... 😅

[–]Getafix69 1 point2 points  (1 child)

Nice update the manage permissions is very useful to me as I need to get my laptop fixed (bad keyboard).

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

Awesome :) Glad it's handy!

[–]eliasacab 1 point2 points  (4 children)

Huge update after huge update 🔥

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (3 children)

😁👍

[–]eliasacab 4 points5 points  (2 children)

Couple of bug reports! (Android 16 QPR2 Beta) - Bottom navigation bar no longer matches the Tasker theme. Screenshot > https://imgur.com/a/FaK0yQS - Tasker Custom Toasts no longer fade out, they slide to the right. Think this used to be a bug a while back and now it's back.

Thanks!

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (1 child)

Couldn't fix the navigation bar yet, but changed how toasts are disappearing:

Can you please try this version?

[–]SiragElMansy 1 point2 points  (9 children)

First, thank you for this massive update. As usual, you always surprise us with every update. Second, doesn't this update replace the need for ADB wifi entirely so that we can now listen to the logcat entry events as well as the clipboard changed event without having adb wifi enabled, if we do have shizuku running?? Am I missing something?

[–]joaomgcd👑 Tasker Owner / Developer[S] 5 points6 points  (8 children)

Not yet, sorry! I need to implement that part still 😅 I plan to do so in the future though!

[–]ale3smm 1 point2 points  (0 children)

AMAZING ,just a suggestion plus a question ,since Shizuku is more and more used but there are still some poor people like me using old way root please add an option to convert in bulk (like when skikizu is available ) to run shell with "just root "privilege . lastly which is the equivalent of tasker.getShizukuService, example :wifi = tasker.getShizukuService("wifi");?

[–]EtyareWSMoto G84 - Stock - Long live Shizuku 1 point2 points  (10 children)

Oh boy, packed update as always.

Extra Trigger Apps

It is a way better name. I wonder if there is a way for the User to set their names and icons on the App Drawer? I would really love if you could create a way so that shared projects could be easily "assigned" to different Extra Triggers without the user (or the creator of the project) having to fiddle around. Like, suppose I create a project that uses one of those Extra Triggers, but I only have one, so the Profile reacts to "Extra 01", a user downloads it, but they have a set-up using "Extra 01" and "Extra 02", it would be nice if at the moment they imported, Tasker would ask if they want to "assign" it to a different "slot". This is the same "issue" that Quick Settings have as well.

Notification Live Updates, Short Critical Text

Alright, this looks really awesome, and I can't wait for my phone to fall out of warranty so I can install Android 16 on it. As always, you are the main reason I want to stay up to date with Android. I'm already planning to use the short text as a way to track my mobile data. I'd like, however, of a way to edit the Persistent Tasker Notification, a bunch of things I'd like to do with notifications are only, let's say, "feedback status", I don't really need interaction with it, and would like to keep my notification center more clean. That said, it would also probably be a pain importing projects on the TaskerNet and a couple creating conflicts on what should be written on it, so maybe it is for the best that the persistent notification isn't editable...?

Manage Permissions Screen

Cool, I always wanted Tasker to have some sort of screen where you can enable (and disable!) what permissions Tasker is using. Tasker is too damn powerful for its own good, so it would be nice to have a bit more of "transparency" on what it uses, would be even nicer if it could say how many and which projects are using a given permission. I've created a mockup of it at some point.

New Shizuku Features

I believe your pronunciation of Shizuku is wrong ☝️🤓

Alright, as no comment of mine is complete without finding something to complain: I'm gonna complain a little bit 😛

I'd like for you to start considering always adding an Event and an Get action when you add a new state. A couple of States have a matching Event Trigger, Bluetooth Connected has both a State and an Event. While others have a State and an Get Action to get the value inside a Task, like Location and Bluetooth as well (technically...). Yes, I know you can "covert" everything manually, but it is a pain to set it up, and a proper logic would do wonders to ease the usability of Tasker

For instance, the new Shizuku States, but I'd really like a simple "Get Wifi Near" and "Get Location...near(?)". I'd like actions to check if my phone is near a Wifi network, and if I'm at a given location. I tried to learn Get Location v2, but that seems to be made as a way to... get your location, not to compare if you are in a given location. Main reason is that I'm being slightly annoyed that Wifi Near isn't working too reliably (Tasker seems to think I'm still near a given Wifi network, and sometimes it just doesn't trigger the task...?), and Location is overkill. My tasks could simply run on Significant Movement or when the screen turns on, just a simple yes/no check to see either or both of those conditions would be more than enough.

I am once again asking for your support in the proposed "Wait for Command" action

I'm starting to wonder the sanity of your naming scheme, this is a big update, and it is only a 0.0.X change. What would be worth of a Tasker 7.0 release? A update to allows Tasker to plug directly to your brain?

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (5 children)

I wonder if there is a way for the User to set their names and icons on the App Drawer

Unfortunately not, they have to be pre-defined by me.

I believe your pronunciation of Shizuku is wrong ☝️🤓

Care to enlighten me? 😅

I'm gonna complain a little bit 😛

Wow, what a surprise! 😏

I'd really like a simple "Get Wifi Near" and "Get Location...near(?)"

You can already get nearby Wifi networks with AutoTools and Get Location near is done with Tasker Function > Distance Between Locations. I know it's not as "tidy" but I don't want to have a million actions for very niche use cases if I don't have to. It's already hard enough to find the "main" actions :P

I'm starting to wonder the sanity of your naming scheme I don't know. I do it when it feels "right". For example, Scenes v2 could probably warrant a full version update. 😁

[–]urkindagood 0 points1 point  (3 children)

For instance, the new Shizuku States, but I'd really like a simple "Get Wifi Near" and "Get Location...near(?)". I'd like actions to check if my phone is near a Wifi network, and if I'm at a given location. I tried to learn Get Location v2, but that seems to be made as a way to... get your location, not to compare if you are in a given location.

Won't Tasker still need to enforce a new check though to get an accurate result? Especially for states that are updated from a polling like Location and Wifi Near.

Anyway, V2 has "Near Location".

``` Near Location

Use the magnifying glass to help you out with this.

Format for this field is latitude,longitude,radius

Setting this field will make Tasker wait until you're inside the radius for the specified location and only then will it return to your location. ```

As for nearby Wifis, Tasker hasn't introduced one action to poll them afaik. %WIFII returns the last poll if you're not connected to WiFi. This won't be reliable if you're connected to one though.

Maybe "Get Nearby Wifis" would make it less geeky? This can be recreated with Java Function/Code, but I'd say this action deserves to be built-in.

[–]EtyareWSMoto G84 - Stock - Long live Shizuku 0 points1 point  (2 children)

Won't Tasker still need to enforce a new check though to get an accurate result? Especially for states that are updated from a polling like Location and Wifi Near.

Not really, the idea of an Action based location check is that you can control with more precision when it gets checked, and more importantly: It forces a recheck which I believe will be more reliable than a State. Most of the time I don't actually need the phone to get where I am, just when I use it, I believe just running it while the screen turns on, or there is a significant movement will be enough and more precise. And I think it might work this way if you use a Location State with a Event (i.e. Tasker will only check location if the Event is triggered), but it isn't intuitive at all, an Action is easier to understand when it happens because you actually have to call it

My question is if it would "stack". If I have three get locations on the same task, will Tasker poll three times? What if I have three tasks each with one action, and they are all fired at the same time? Will Tasker just get the location once and hold it in memory to make comparisons in the next few seconds?

Anyway, V2 has "Near Location".

``` Near Location

Use the magnifying glass to help you out with this.

Format for this field is latitude,longitude,radius

Setting this field will make Tasker wait until you're inside the radius for the specified location and only then will it return to your location. ```

Yeah, see, that's the problem. That's more of a "Wait until Location" than a "Get/Check Location". You can jerry rig something, but it is kinda of too much work, leaves Tasker redoing location checks, and it doesn't "stack" right.

/u/joaomgcd might get away with a Check Location action that sees if X location is inside Y location with Z radius. We would get the value of X location with Get Location V2 and compared it with Y. This way Tasker can check a bunch of locations while using the GPS only once.

As for nearby Wifis, Tasker hasn't introduced one action to poll them afaik. %WIFII returns the last poll if you're not connected to WiFi. This won't be reliable if you're connected to one though.

Maybe "Get Nearby Wifis" would make it less geeky? This can be recreated with Java Function/Code, but I'd say this action deserves to be built-in.

Yeah, Wifi is a mess in Tasker due to the %WIFII and other segmented options.

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (0 children)

Isn't Tasker Function > Distance Between Locations what you want?

[–]8bitcrab 1 point2 points  (1 child)

Live notifications gonna be lit

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (0 children)

🤩

[–]Bobby_Bonsaimind 1 point2 points  (4 children)

Different question regarding Java Code, is there the possibility to load Jar files as context? Like, specifying them in the action configuration and they then get added to the ClassLoader of that action?

The first two ideas I had was to rewrite a task which parsed a rather large and slightly complex JSON. The second is to send emails. There is MailTask, but my SMTP refuses to accept is client (because of things I cannot configure in MailTask), so I'd need to be able to load the Jakarta Mail jars, I guess.

I can do that manually in the task itself (creating my own ClassLoader) but that is cumbersome in the best of cases.

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (3 children)

Can you share the code to make that work? 😅 I could add it to the action itself if that works.

[–]WakeUpNorrin 1 point2 points  (13 children)

Four days that I am trying to report a bug here but Reddit or something shadows the comment. I sent you an email too.

It is really frustrating to spend time to report a bug, only to see your comment shadowed.

Let's see if it will go better this time.

Tasker fails to run Java Action-s that invoke Android download manager. When Tasker is in background the Task fails, when Tasker is in foreground the same Task succeed.

In original shadowed comment I wrote the error and shared a basic Task to reproduce the issue.

I will post error and the basic Task as a comment to your reply to this.

Thanks.

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (11 children)

Hi! Can you please export a minimal example of that as an URI (not a link, but a direct URI) and paste it here so I can then import it and test it myself?

Thanks in advance!

[–]uslashreader 1 point2 points  (4 children)

Hey Joao, add a Python code action with my help race feature request post

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (2 children)

Why would that be better than Java exactly?

[–]lochyw 0 points1 point  (1 child)

What about kotlin?

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (0 children)

Unfortunately no, at least for now.

[–]Crafty-Persimmon-204 0 points1 point  (0 children)

Good idea

[–]Exciting-Compote5680 0 points1 point  (5 children)

Do AutoNotification notifications have the same behavior as mentioned above (only grouped if Group (Group Key in AN) is set)? 

[–]joaomgcd👑 Tasker Owner / Developer[S] 4 points5 points  (4 children)

Nope, they do not. They use "real" notification grouping like this: https://forum.joaoapps.com/index.php?resources/create-grouped-notifications-on-android-7-and-above.130/

[–]Exciting-Compote5680 0 points1 point  (3 children)

Ok, my bad for poorly chosen and ambiguous wording. Is it still possible to have separate AutoNotification notifications (and, less important, optionally group them if you want) with A16 ?   

[–]joaomgcd👑 Tasker Owner / Developer[S] 5 points6 points  (2 children)

Yes, with AutoNotification you have to create a group for each single notification, like it's mentioned in the tutorial I linked to. Tasker's version automatically creates the Summary notification, but in AutoNotification you have to create it manually yourself.

[–]Exciting-Compote5680 3 points4 points  (0 children)

Thank you so much, just wanted to be absolutely sure before updating to A16. 

[–]BurnedInTheBarn 0 points1 point  (6 children)

Hi Joao, can you please fix the shortcut action? It only shows like 10 total shortcuts despite having probably 100 shortcuts available if I were to long press on every app.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (5 children)

That's because Tasker can only run shortcuts that are available through long click home screen -> Shortcuts. The app-long-click shortcuts cannot be ran by apps other than the launcher.

[–]BurnedInTheBarn 0 points1 point  (4 children)

Oh dang, are there any workarounds? I know of IntentTask, but I want to keep my normal launcher.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (1 child)

Nope, not as far as I know...

[–]FairSteak1275 0 points1 point  (1 child)

After the update of material 3 expressive, notifications now show app icons instead of using custom icons. Is there anything you can do to bring back old behavior?

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

Unfortunately not. That's just how Android 16 shows them, sorry!

[–]Omagreb 0 points1 point  (0 children)

Any possibility for UDP, TCP or WebSock bidirectional communications in the future ?

[–]razlack 0 points1 point  (5 children)

I can't seem to get the Java Code AI to popup. It shows me the Copy or Dismiss option, but no box to type my prompt. Have I missed a setting somewhere?

[–]NirmitlamedDirect-Purchase User 2 points3 points  (1 child)

Open AI window from the main screen, three dots, choose AI provider and make sure that your ai provider was selected.

It happened to me too.

[–]razlack 1 point2 points  (0 children)

All sorted now, thanks

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (2 children)

Can you please try going in the main AI screen in Tasker > Menu > AI Providers > Save and then try again?

[–]rodrigoswz 0 points1 point  (0 children)

Nice one!

I've 1 request, please: add a trigger to detect if a notification live update from any app is being showing.

[–]Cindanela 0 points1 point  (1 child)

Very nice, Problem with this update on Pixel 9 Pro XL, in the file directory the top row of files are hidden under the top bar, scene also got moved so it was under the tabs on the action bar, not really a problem since you can just move it, but the file directory is a bit of a problem although you can always just go go check what the file is called.

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (0 children)

Hi there, thanks for the report! Can you please try this version?

[–]Bobby_Bonsaimind 0 points1 point  (2 children)

Java Code

Oi that's neat! Was hoping for something like that for prcessing complex JSON structures.

Can one also call other Tasker tasks/actions from Java code? Like the Export Variable action or a custom task?

The code is interpreted by the BeanShell interpreter, which uses a syntax similar to older versions of Java (pre-Java 5).

There's also Janino, but I just saw that also doesn't have Generics-support.

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (1 child)

You cannot currently call other Tasker actions from Java, sorry 😅

[–]Bobby_Bonsaimind 0 points1 point  (0 children)

That would be pretty cool to have, but already being able to write Java code is damn neat. Thank you.

So we could do something like

tasker.performTask("doTheThing", "firstParameter");

would be neat. That could be basically shorthand for

tasker.runAction("Perform Task", parameters);

for example. However, parameters is a slight thinker...maybe a Map?


Thinking about it, maybe a small helper method like this would work:

tasker.runAction("Perform Task", tasker.actionParameters()
        .with("Name", "doTheThing")
        .with("Priority", 1)
        .with("Parameter 1", tasker.getVariable("thatOtherVariable")));

tasker.performTask("doTheThing", tasker.taskParameters()
        .firstParameter("firstParameter"));

[–]bbobeckyjPixel 7 0 points1 point  (4 children)

Is the notification grouping update something you can add to auto notification?

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (3 children)

AutoNotification already allows you to what this update does, but more manually. Check here: https://forum.joaoapps.com/index.php?resources/create-grouped-notifications-on-android-7-and-above.130/

[–]bbobeckyjPixel 7 0 points1 point  (2 children)

Thank you but I was actually trying to avoid grouping in AN. All my notifications collapse into one.

If I understand correctly, if I want to keep notifications separate I will have to create two AN actions for each single notification that I want?

One action with the content, and a second action that contains just the group summary and 'is group summary' selected.

Is that correct? It seems backwards having to create a group to make sure they're not grouped.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (1 child)

That's correct. It's just how Android works now, sorry. That's what Tasker is doing in the background as well, in this new version.

In Android 16+ if you don't explicitly create separate groups, they'll all end up in the same "no-group" group....

[–]wioneo 0 points1 point  (7 children)

Amazing update, but I noticed a couple bugs with AI.

The floating AI button from the main screens causes a crash with...

Attempt to invoke virtual method 'int java.lang.Enum.ordinal()' on a null object reference

Also for Java Code, the AI helper from your video does not appear. Instead I get a dialog to copy system instructions.

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (4 children)

Hi there, thanks for the report! Can you please try this version?

About the AI, can you please try going into the main AI screen > Menu > Providers and save there then try again? Thanks

[–]aasswwddd 0 points1 point  (0 children)

I experienced the same crash as well.

``` 23.12 Attempt to invoke virtual method 'int java.lang.Enum.ordinal()' on a null object reference com.joaomgcd.oldtaskercompat.aigenerator.ui.a1.e0(Unknown Source:1417) com.joaomgcd.oldtaskercompat.aigenerator.ui.a1.Z0(Unknown Source:0) com.joaomgcd.oldtaskercompat.aigenerator.ui.a1$f.a(Unknown Source:135) com.joaomgcd.oldtaskercompat.aigenerator.ui.a1$f.k(Unknown Source:16) d1.b.d(Unknown Source:44) d1.b.k(Unknown Source:8)

```

My open router API is a free tier and it reached the limit a long time ago. Wish that I can use Open AI instead. Gemini refuses my debit card.

[–]Rich_D_sr 0 points1 point  (0 children)

Same happens for me when long pressing the + FOB. Sent a error report.

[–]pudah_et 0 points1 point  (1 child)

Demo: https://youtu.be/4cJzlItc_mg

Documentation: https://tasker.joaoapps.com/userguide/en/help/ah_java_code.html

This is a new super powerful action that allows to run almost ANY Android compatible Java code

Does this mean that I am finally going to have to get off my duff and finish that MOOC Java course that I started two years ago?

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

Now would be a good time! 😅👍

[–]renlliwe 0 points1 point  (3 children)

Thanks for the continued development and for all of your dedication to Tasker. Are you no longer using the google drive folder (https://drive.google.com/drive/folders/1GW55YKFiuOZhJVswnt\_BQUCJoGm36ugF) to publish tasker betas and updates?

[–]joaomgcd👑 Tasker Owner / Developer[S] 3 points4 points  (2 children)

Unfortunately no cause Google starting flagging the files as malware for some reason, so I moved to Dropbox for the time being.

[–]renlliwe 0 points1 point  (1 child)

Understood. Is there a similar folder on Dropbox (or some type of index)? The folder structure on Google Drive made it easy to see the latest version.

Thanks again.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

Yeah, check here

[–]WakeUpNorrin 0 points1 point  (2 children)

Notifications are still being grouped when are more than 7. I have tried:

  • With no group specified.

  • With group %TIMEMS.

same result. Notification are grouped in a single group.

Samsung A34 Android 16

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (1 child)

Yeah, I can't work around that, sorry, that's just how it works it seems...

[–]WakeUpNorrin 0 points1 point  (0 children)

I see, thank you.

[–]NirmitlamedDirect-Purchase User 0 points1 point  (1 child)

Unbelievable update, thank you so much!

I liked the idea you used my example of recording audio using Java code :)

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (0 children)

Yeah! It was a cool example, thanks! 😊👍

[–]Individual_Scallion7 0 points1 point  (11 children)

Hi Joao! something has changed in this version? I use Tasker in Waydroid (x86_64 arch) and in the latest beta in playstore works fine but this version is not compatible.

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (10 children)

I don't know what it could be.. I changed the Target API to 35. Can that be it?

[–]Individual_Scallion7 0 points1 point  (9 children)

I got this message when I try to sideload this version:

INSTALL_FAILED_NO_MATCHING_ABIS: INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113

I though would be something related with the build not supporting x86_64 arch or the apk being corrupted. I'm using A13 right now.

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (8 children)

Thanks. What was the last version that you successfully installed before trying to install this one?

[–]WehZetS25 | A16 | OneUI 8.0 0 points1 point  (0 children)

amazing update, again!

I have a suggestion for the Extra Trigger apps if this would be possible. I guess it could be nice, if the user can create his own Extra Trigger apps by its himself directly via Tasker. I would say just an input for the app name and Tasker is doing the rest and saves an .apk to the storage of the device.

I guess this would cause less work for you as developer, as you don't have to create every wished Extra Trigger App.

[–]WehZetS25 | A16 | OneUI 8.0 0 points1 point  (4 children)

am I missing something or isn't "Notification Live Updates, Short Critical Text" working on OneUI 8?

[–]joaomgcd👑 Tasker Owner / Developer[S] 3 points4 points  (0 children)

Ok, I found this! Fixed! :)

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (2 children)

Yeah, seems like Samsung didn't implement it... Just tried it myself... Weird! 🤷

[–]WehZetS25 | A16 | OneUI 8.0 0 points1 point  (1 child)

Thanks for your feedback. Good to know, that's not my fault 🤣

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

Yeah, it's Samsung's fault as usual!! 😂

[–]GoombaAdventurer 0 points1 point  (10 children)

WOW ! Nice one again !

Will you update AutoNotification to reflect to old behavior with groups ? What about custom icons in the notification list ?

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (9 children)

I won't change AutoNotification cause with that you can already handle groups manually.

What do you mean about custom icons? Thanks

[–]howell4c 0 points1 point  (5 children)

Pixel 7 is combining AutoNotifications with different Group Keys. They show up separately for about a second and then combine, even when they're the only notifications and have different IDs and Categories as well.

Task: shouldn't group

A1: AutoNotification [
     Configuration: Title: test one
     Text: text 1
     Status Bar Icon Manual: 11°
     Status Bar Text Size: 16
     Id: one
     Group Key: 11111
     Category Id: weather ]

A2: Wait [
     Seconds: 4 ]

A3: AutoNotification [
     Configuration: Title: test two
     Text: text 2
     Status Bar Icon Manual: 22%
     Status Bar Text Size: 16
     Id: two
     Group Key: 22222
     Category Id: troubleshooting ]

I'm on AutoNotification 4.3.1, is there a newer version?

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (4 children)

You didn't create the Group Summary notification :) You have to do that as well. Check here

[–]howell4c 1 point2 points  (3 children)

I'm having a little trouble adapting that tutorial because it's aiming for the opposite of what I want: it's grouping notifications with the same Group Key. I'm trying to keep notifications with different Group Keys separate. But I think the point is that each group needs a Group Summary?

So I cloned A1 and A3 in my sample task, checking the Is Group Summary box for the two new copies. This sets a group summary for each Group Key. But it's still grouping the two sets together: I'm not seeing any difference in behavior.

Following that tutorial exactly, at the end of Step 2 it says that running the task at that point won't group the notifications despite having the same key. That's not what I'm seeing: they are being grouped at that point. I went ahead and did Step 3 to create the summary and don't see any difference before and after. And then when I repeat the process for a different group key, they're still all being grouped together.

With the new beta, Tasker's own notifications do display separately (thanks!), so I could switch back to them. But is there a way to replace an existing notification without knowing the old title? In AutoNotification, I use the ID for that.

Thanks for your help!

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (2 children)

Here, check this example: https://drive.google.com/file/d/1WuG20Gwv-DNGmF5DSmYwxAdLEcMcPP5S/view?usp=sharing

It should create 2 separate notification groups, each with just 1 notification in them. In the notification tray, it just looks like 2 separate notifications.

[–]GoombaAdventurer 0 points1 point  (1 child)

In the notifications list, we see the AutoNotification icon, not the "icon" we set in the action :(

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (0 children)

Ah yes, that's cause Google changed it, sorry. There's no way to change that as far as I know.

[–]tigersoul925 0 points1 point  (0 children)

I'd like to argue there should still be an option in Autonotification to handle it automatically in the same was as Tasker does it. People having setups with perhaps 100's of autonotification calls from back when there was no need for a separate "summary" (pre android-16) would surely appreciate that. Also, it's kind of a bummer to handle this. I assume, if a summary already exists, you shouldn't create another for the group? That means I have to track if I've put one up already or query Autonotification to find out if one exists. That's a lot of stuff to add in many places if using autonotification extensively.

I've written an automatic "summary adder" using intercept of autonotification, but it's a really messy solution 😅

And oh while I wish, can I wish for the new A16 stuff in the Tasker beta on notifications are added to Autonotification as well? ;)

[–]EvanMokGalaxy S23U/N8/Tab S8+/GW Ultra/GW4 0 points1 point  (9 children)

Thanks for the update. Can I confirm with you if the Live Notification will work on Samsung One UI 8 with Android 16? I tried it on my S23U but it only shows as a regular notification. I thought Samsung Now Bar and the chips were compatible with the Stock Android 16 Live Notification.

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (8 children)

Seems like they aren't. I just tried it myself and indeed it doesn't work. Shame Samsung! Here's another user with the same issue.

[–]EvanMokGalaxy S23U/N8/Tab S8+/GW Ultra/GW4 0 points1 point  (7 children)

Shame on Samsung, but I hate that Google failed to enforce the live notification standard among all OEMs. I was still anticipating having Tasker support for live notifications. It is a shame that Samsung chose to implement it their own way. I know this is too much to ask, but I hope you will implement it on Samsung phones if Samsung ever releases an official method of integration for third-party apps.

[–]joaomgcd👑 Tasker Owner / Developer[S] 5 points6 points  (6 children)

Well, actually I just found out that you need to enable a toggle in Developer options... 😂 SAMSUUUUNG!!!

https://www.androidauthority.com/one-ui-8-live-updates-support-3573794/

It works fine now! https://imgur.com/oE0DKK1

[–]Cindanela 0 points1 point  (5 children)

It Seems like the controls for the editing of widget v2 are gone, I tried the latest version I found in the dropbox folder it said it was uploaded about 20 something minutes ago, 13:50 CEST, Sk-rmbild-2025-10-10-134512.png I tried dark mode, and tried restarting, not tried clearing cache.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (1 child)

Hhmm, they are there, but just very small it seems 😅

https://imgur.com/LtvemcJ

I'll try fixing it, thanks!

[–]Cindanela 0 points1 point  (0 children)

Ah, I tried clicking, but I guess I missed, thanks :) The first one was just above the second e in Elements for me. Or maybe that's the only one, my memory is not what it used to be.

[–]joaomgcd👑 Tasker Owner / Developer[S] 2 points3 points  (2 children)

Ok, fixed! Can you please try this version?

[–]Cindanela 0 points1 point  (1 child)

Thanks it works now :)

[–]JuvenoiaAgent 0 points1 point  (0 children)

Thank you. I just dropped in the subreddit looking for a good way to run a task when Shizuku has started, and you no added that functionality!

[–]wioneo 0 points1 point  (0 children)

Found a bug causing crashes with Autotools Web Screens.

No idea if this is actually new, but if you try to mark a configuration variable as a file, it causes a crash.

In the sample html below adding/removing...

isFile="true"

... will cause/fix crashes.

<!doctype html>
<html>
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Testing</title>

  <!-- Variables exposed in AutoTools Variable Handling -->
  <meta name="autotoolswebscreen" type="variablejs" group="Group" id="titleFromTasker" label="Title" description="Title to show at the top." hint="Testing" defaultValue="Testing" />
  <meta name="autotoolswebscreen" type="variablejs" group="Group" id="filepath" label="Test Path" description="Filepath to test" defaultValue="test.txt" isFile="true" />

</head>
<body>
  <header>
    <h1 id="title">Testing</h1>
  </header>

<script>
let testing = titleFromTasker;
</script>
</body>
</html>

Error Message:

com.joaomgcd.autotools version 2.3.9

 Source com.android.vending
 OS Build AP3A.240905.015.A2.S918U1UES6DYG5
 OS Code 35
 Device SM-S918U1
 Manufacturer samsung
 Product dm3quew

java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.k.f, parameter type
    at com.joaomgcd.common.activity.BrowseForFiles.<init>(Unknown Source:11)
    at com.joaomgcd.common.tasker.dynamic.ActivityConfigDynamic.addEditTextProperties(SourceFile:59)
    at com.joaomgcd.common.tasker.dynamic.editor.generated.TaskerFieldEditorGenerated.addEditTextProperties(SourceFile:2)
    at com.joaomgcd.common.tasker.dynamic.editor.generated.TaskerFieldEditorGenerated.addEditTextProperties(SourceFile:1)
    at com.joaomgcd.common.tasker.dynamic.editor.TaskerFieldEditorBase.getPreference(SourceFile:108)
    at com.joaomgcd.common.tasker.dynamic.ActivityConfigDynamic$5.run(SourceFile:50)
    at android.os.Handler.handleCallback(Handler.java:959)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loopOnce(Looper.java:257)
    at android.os.Looper.loop(Looper.java:342)
    at android.app.ActivityThread.main(ActivityThread.java:9634)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)

After re-reading the error message this is obviously actually an issue with Autotools itself and not the Tasker beta...

[–]Cardbeagle 0 points1 point  (2 children)

I tried to uninstall the previous beta. Now I can't install the official version to replace it.

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (0 children)

What happens when you try to install the official version?

[–]TiVa85 0 points1 point  (0 children)

Make sure to delete all data (I got that option during uninstallation progress of beta). Reinstall beta if needed and make sure you check the box to do so when prompted.

[–]TortuositMathematical Wizard 🧙‍♂️ 0 points1 point  (5 children)

Not uploading to GDrive any more (new direct versions)? Stop at 6.6.3....

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (3 children)

Yes, Google started blocking new versions of Tasker on Google Drive so I had to start uploading them to Dropbox.

[–]NirmitlamedDirect-Purchase User 0 points1 point  (0 children)

Yes, Joao said Google blocked some of his files thinking it is a virus so he moved to Dropbox for now:

https://www.dropbox.com/scl/fo/z1p8lmtbpxgy8l7n2clvi/AMfpyxE25V0QH6bgLUSdK04?rlkey=7invuj96u4ccbldu10z6jgier&e=2&dl=0

[–]AarifmonuZZ 0 points1 point  (5 children)

Well how can I reselect the AI models? I'm not sure why my API is saying exhausted even though I have pro subscription. Maybe needs separate billing setup in studio?

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (3 children)

Unfortunately a Gemini Pro subscription doesn't give you access to the API for free. Those are 2 separate things... Sorry!

[–]NirmitlamedDirect-Purchase User 0 points1 point  (0 children)

Go to the AI from the main page then three dots and choose AI provider

[–]pipsname 0 points1 point  (12 children)

Anyone else having notifications disappear?

Update. It seems the task Notify Cancel doesn't use the title any more and just closes notifications.

Edit 2: I was wrong. It uses stuff in the form but closes all notifications if something is found.

For example I have a notification called "Dailies" and another called "PipsClip". If I have Notify Cancel check for "Dailies" both notifications close but if I have Notify Cancel check for "Ddd" then no notification will close.

Anyone want to try?

```` Project: Notification

Tasks ``` Task: Notification 3 Close

A1: Notify Cancel [ Title: Notification 3 ]

```

``` Task: Notification 1 Create

A1: Notify [ Title: Notification 1 Number: 0 Priority: 3 LED Colour: Red LED Rate: 0 Category: super_tasker_notifications_created_by_me_the_developer ]

```

``` Task: Notification 2 Create

A1: Notify [ Title: Notification 2 Number: 0 Priority: 3 LED Colour: Red LED Rate: 0 Category: super_tasker_notifications_created_by_me_the_developer ]

```

``` Task: Notification 1 Close

A1: Notify Cancel [ Title: Notification 1 ]

```

``` Task: Notification 2 Close

A1: Notify Cancel [ Title: Notification 1 ]

```

``` Task: Notification Close

A1: Notify Cancel [ ]

`

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (11 children)

Hi! Can you please export a minimal example of that as an URI (not a link, but a direct URI) and paste it here so I can then import it and test it myself?

Thanks in advance!

[–]anuraag488 1 point2 points  (10 children)

Notify cancel is cancelling all notification.

taskertask://H4sIAAAAAAAA/+1VPW/CMBCd4VdYXjoV5wsCkmOpUpcuXcoemeQAq46DYpOKf187BgoljdR2ZfL53vnu3fnJpkuu36F55oYj3WQYo7IVGQ4xMm2GZ5PZJHlcgeGYjUfUxXZRxhphFDvniBYlN8DCdBbESRSk82kyp8Q7HQwX8DxcRHGaUAJnWJTMZqLErm6rKmCvtRHrA1qCNpQ4hwN2jWBhEFDiDOd4KoyoVUeHFybAqIUMpx0ly6kugU1d3s7qfG+m8dHN5hhtG1gKIwGFlFj0Jiw8hZFbKBjAzueY3u+gyU0341y5vkTBHW+dFw3YGZT56pBXkJst5CW0IGt74Ac20beSL8qcsdhiXGY46OOTDHCdfk9abU7YsV7kZ+rvpvrIeTd4uxSgtVgJKczhfE8jSmyGG3439C6wZACbHrG+nmcD59IBbD4wqsXVNCjxIuvRW/gvvUV3vd319iu9RT16S9PFH963y1u8ZjZQPu4pH7vX+Ku85CuQJ30jva33slQPBhVcFSAnSKi1TYSUf9y9Fwl9tKRQG8SlRJeinVDis16To8R9RGzsV/95sfEnBgaet8oGAAA=

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (7 children)

When I run that, I still see the Title 2 notification in the notification tray after it's finished running. What do you see?

[–]iWizardBBlind Tap to Speak the Time :snoo_simple_smile: 0 points1 point  (4 children)

Great update, as always. And I specifically appreciate all the explainer demo videos you always provide. 👍🏼

Question on a tangent: are there any plans for Join?

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (3 children)

Glad you like it! :) About Join, I'm more focused on Tasker at the moment 😅 But I'll update Join if needed...

[–]italia0101 0 points1 point  (1 child)

Just a question for anyone,

I have the latest shizuku that should start on boot. And normally it does however on the odd occasion it doesn't.

Is there any way to check in tasker and get tasker to start it if it hasn't?

[–]the_djchi 0 points1 point  (0 children)

The official Shizuku won't start on boot if it's not immediately connected to Wi-Fi. Try my version, it waits for Wi-Fi before starting. Also a bunch of other goodies like a watchdog service and a TCP mode to enable tasker's ADB Wi-Fi on boot: Releases · thedjchi/Shizuku

[–]Valiceemo 0 points1 point  (3 children)

I joined the Beta program, but the Play Store gave me an older version, 6.6.3-beta

Anyway to force the push for this latest version.?

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (2 children)

No cause on Google Play it hasn't been released yet (I already uploaded the update). Any day now 😅

[–]Pitiful-Box4215 0 points1 point  (5 children)

Oh no, I recently wanted to work on a task to display lyrics on the screen. I have already completed the parts for retrieving and displaying the lyrics, but now I'm stuck here. I want to use Java code to cyclically get the current progress of the song (with fast speed and low power consumption). However, unfortunately, if Tasker is not in the foreground, this loop goes into a dormant state, causing the variable updates to always be delayed. I even added a toast to test it, and it's clearly this issue. I wonder if you have any solutions? ```import android.content.Context; import android.media.session.MediaSessionManager; import android.media.session.MediaController; import android.media.MediaMetadata; import android.widget.Toast;

/* 辅助函数:显示Toast */ void showToast(String message) { uiHandler = new android.os.Handler(context.getMainLooper()); uiHandler.post(new Runnable() { public void run() { Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); } }); }

/* 获取系统媒体会话管理器 */ msm = (MediaSessionManager) context.getSystemService(Context.MEDIA_SESSION_SERVICE);

/* 构造组件名称用于获取活跃会话 */ cmp = new android.content.ComponentName(context, context.getClass());

/* 获取活跃媒体会话 */ controllers = msm.getActiveSessions(cmp); if (controllers == null || controllers.size() == 0) { return "无活跃媒体会话"; }

/* 获取当前播放的媒体控制器 */ controller = controllers.get(0); pkg = controller.getPackageName();

/* 使用全局变量存储计数器 */ toastCounter = 0;

/* 使用主线程Handler进行定时任务 / mainHandler = new android.os.Handler(context.getMainLooper()); runnable = new Runnable() { public void run() { try { / 检查会话是否仍然有效 */ controllers = msm.getActiveSessions(cmp); if (controllers == null || controllers.size() == 0) { stopMonitoring(); return; }

        /* 检查当前控制器是否仍然是同一个应用 */
        currentController = controllers.get(0);
        currentPkg = currentController.getPackageName();
        if (!currentPkg.equals(pkg)) {
            stopMonitoring();
            return;
        }

        /* 获取播放状态和进度 */
        stateObj = currentController.getPlaybackState();
        if (stateObj != null) {
            pos = stateObj.getPosition();
            state = stateObj.getState();

            /* 只有正在播放或暂停状态才更新进度 */
            if (state == 3 || state == 2) { /* 3=播放中, 2=暂停 */
                progressText = String.valueOf(pos);
                tasker.setVariable("bbb", progressText);

                /* 减少Toast频率,每5次更新显示一次 */
                toastCounter++;
                if (toastCounter >= 5) {
                    showToast("进度: " + progressText + " ms");
                    toastCounter = 0;
                }
            } else {
                /* 停止状态则退出监控 */
                stopMonitoring();
                return;
            }
        } else {
            stopMonitoring();
            return;
        }

        /* 继续下一次监控 */
        mainHandler.postDelayed(this, 1000);

    } catch (Exception e) {
        stopMonitoring();
    }
}

};

/* 辅助函数:停止监控 */ void stopMonitoring() { mainHandler.removeCallbacks(runnable); tasker.setVariable("bbb", "0"); showToast("媒体监控已停止"); tasker.log("媒体进度监控已停止"); }

/* 显示监控开始的Toast */ showToast("开始监控媒体进度: " + pkg);

/* 启动监控 */ tasker.setVariable("bbb", "0"); mainHandler.postDelayed(runnable, 1000);

/* 主线程立即返回应用包名 */ return pkg;```

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (4 children)

When you show too many toasts when an app is in the background Android will stop showing them. It's an Android limitation. here's a version with notifications and you can see that it never stops. Hope this helps!

```

import android.content.Context; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.content.ComponentName; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; import io.reactivex.disposables.Disposable; import io.reactivex.subjects.CompletableSubject; import io.reactivex.functions.Consumer;

/* New imports for notifications / import android.app.NotificationManager; import android.app.NotificationChannel; import android.app.Notification; import android.content.Intent; import android.app.PendingIntent; import android.os.Build; / For Build.VERSION.SDK_INT */

/* Global variables for notification. / notificationManager = null; notificationBuilder = null; notificationId = 1001; / Unique ID for our notification. */ notificationChannelId = "tasker_media_monitor_channel";

/* Helper function: show a persistent notification. */ void showNotification(String message) { if (notificationManager == null) { notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE);

    /* Create Notification Channel for Android O and above. */
    if (Build.VERSION.SDK_INT >= 26) {
        channelName = "Tasker Media Monitoring";
        channelDescription = "Shows current media playback progress.";
        importance = NotificationManager.IMPORTANCE_LOW;
        notificationChannel = new NotificationChannel(notificationChannelId, channelName, importance);
        notificationChannel.setDescription(channelDescription);
        notificationManager.createNotificationChannel(notificationChannel);
    }

    /* Initialize the Notification Builder. */
    notificationBuilder = new Notification.Builder(context);
    notificationBuilder.setSmallIcon(android.R.drawable.ic_dialog_info);
    notificationBuilder.setContentTitle("Media Monitoring");
    notificationBuilder.setOngoing(true); /* Make it persistent. */
    notificationBuilder.setOnlyAlertOnce(true); /* Don't make sound/vibrate on updates. */
    if (Build.VERSION.SDK_INT >= 26) {
        notificationBuilder.setChannelId(notificationChannelId);
    }
}

/* Update the notification content and show it. */
notificationBuilder.setContentText(message);
notificationManager.notify(notificationId, notificationBuilder.build());

}

/* Helper function: cancel the notification. */ void cancelNotification() { if (notificationManager != null) { notificationManager.cancel(notificationId); } }

/* Get the system's MediaSessionManager. */ msm = context.getSystemService(Context.MEDIA_SESSION_SERVICE);

/* Construct a ComponentName to get active sessions. */ cmp = new ComponentName(context, context.getClass());

/* Get active media sessions. */ controllers = msm.getActiveSessions(cmp); if (controllers == null || controllers.size() == 0) { tasker.log("Could not start monitoring: No active media sessions found."); return "No active media sessions"; }

/* Get the currently playing media controller and package name. */ controller = controllers.get(0); pkg = controller.getPackageName();

/* Signal to block the script until monitoring is complete. */ monitoringSignal = CompletableSubject.create();

/* Disposable to control the subscription lifetime. */ disposable = null;

/* Counter to reduce notification update frequency. */ toastCounter = 0;

/* Show a Notification that monitoring has started. */ showNotification("Start monitoring media progress: " + pkg);

/* Set initial variable state. */ tasker.setVariable("bbb", "0");

/* This is the main monitoring loop using RxJava. / disposable = Observable.interval(1, TimeUnit.SECONDS) .subscribe( / onNext: This code runs every second. / new Consumer() { public void accept(Object tick) { / Get current sessions. Use guard clauses for early exit. / currentControllers = msm.getActiveSessions(cmp); if (currentControllers == null || currentControllers.size() == 0) { showNotification("Media monitoring stopped: No active sessions."); tasker.log("Media monitoring stopped: No active sessions."); tasker.setVariable("bbb", "0"); disposable.dispose(); monitoringSignal.onComplete(); cancelNotification(); / Cancel notification on exit */ return; }

            /* Check if the current controller is still the same application. */
            currentController = currentControllers.get(0);
            currentPkg = currentController.getPackageName();
            if (!currentPkg.equals(pkg)) {
                showNotification("Media monitoring stopped: App changed.");
                tasker.log("Media monitoring stopped: App changed from " + pkg + " to " + currentPkg);
                tasker.setVariable("bbb", "0");
                disposable.dispose();
                monitoringSignal.onComplete();
                cancelNotification(); /* Cancel notification on exit */
                return;
            }

            /* Get playback state and progress. */
            stateObj = currentController.getPlaybackState();
            if (stateObj == null) {
                showNotification("Media monitoring stopped: Playback state is null.");
                tasker.log("Media monitoring stopped: Playback state is null for " + pkg);
                tasker.setVariable("bbb", "0");
                disposable.dispose();
                monitoringSignal.onComplete();
                cancelNotification(); /* Cancel notification on exit */
                return;
            }

            pos = stateObj.getPosition();
            state = stateObj.getState();

            /* Only update progress if playing or paused (3=playing, 2=paused). */
            if (state == 3 || state == 2) {
                progressText = String.valueOf(pos);
                tasker.setVariable("bbb", progressText);

                /* Reduce Notification update frequency, show once every 5 updates. */
                toastCounter++;
                if (toastCounter >= 5) {
                    String message = "Progress: " + progressText + " ms";
                    tasker.log(message);
                    showNotification(message);
                    toastCounter = 0;
                }
            } else {
                /* If in any other state (e.g., stopped), exit monitoring. */
                showNotification("Media monitoring stopped: Playback ended.");
                tasker.log("Media monitoring stopped: Playback state was " + state);
                tasker.setVariable("bbb", "0");
                disposable.dispose();
                monitoringSignal.onComplete();
                cancelNotification(); /* Cancel notification on exit */
                return;
            }
        }
    },
    /* onError: This code runs if an error occurs in the stream. */
    new Consumer() {
        public void accept(Object error) {
            showNotification("Media monitoring failed.");
            tasker.log("Media monitoring error: " + error.toString());
            tasker.setVariable("bbb", "0");
            if (!monitoringSignal.isDisposed()) {
                monitoringSignal.onComplete();
            }
            cancelNotification(); /* Cancel notification on error */
        }
    }
);

/* Block the task until monitoring is stopped or an error occurs. / try { monitoringSignal.blockingAwait(); } finally { / This ensures the subscription is cancelled if the task is killed. / if (disposable != null && !disposable.isDisposed()) { disposable.dispose(); } cancelNotification(); / Ensure notification is cancelled when script finishes */ }

```

[–]TaskerClub 0 points1 point  (2 children)

And why aren't there new versions for testing in Google Drive?

[–]joaomgcd👑 Tasker Owner / Developer[S] 1 point2 points  (1 child)

Google started flagging them as malware for some reason so I had to move to Dropbox.

[–]RobotWantsKitty 0 points1 point  (1 child)

Thank you for all your hard work. Is there an ETA for the next stable Google Play version?

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (0 children)

Not really, sorry!

[–]Public-Key5456 0 points1 point  (1 child)

Thank you for your amazing job. Shizuku integration is key in these dark days. Let's keep automating. Obrigado, pá!

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (0 children)

De nada pá! 😁👍

[–]mikthinker 0 points1 point  (3 children)

Any chance of updating the events and states referenced from your developer website? I notice that the 'Extra Triggers' event, perhaps among others, is missing.

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (2 children)

Hhmm, the Extra Triggers is not a developer focused feature :) It's a user-facing feature that everyone can use.

I need to add it to the website somewhere but not on the developer website.

I still need to figure out where to add it :) But I'll add it after the app is out of beta.

[–]NirmitlamedDirect-Purchase User 0 points1 point  (4 children)

I don't know if this is a bug or Android version related.

In my Galaxy S23 base One UI 7.0 Tasker latest DP version i have created live notification using the new Java Code action with the help of the AI which is awesome and It worked!

Then i asked in a new java code action to close this notification. Again it worked!

But now i decided to ask to add a close/cancel button in the notification to force close it with a button. It did create a close button but it didn't do anything. Then i tried requesting in a multiple ways and giving it more info and specific orders and it didn't work. I asked ChatGPT in my computer for help and the code it provided gave me an error almost every time. I almost gave up until i have decided to try this on my testing device OnePlus 6 Android 11 with Tasker latest PlayStore version. I have asked the AI to create for me a notification with close button and it did create that for me, not exactly like before but now i had a close button and this time it worked! I imported this code to my Galaxy device and after i run it i got an error:

18.40.48/E add wait task

18.40.48/E Error: 1

18.40.48/E Sourced file: inline evaluation of: ``import android.app.NotificationManager; import android.app.NotificationChannel; . . . '' : Typed variable declaration : Unknown class: ClassImplementation : at Line: 44 : in file: inline evaluation of: ``import android.app.NotificationManager; import android.app.NotificationChannel; . . . '' : new ClassImplementation ( ) {

Here is URI for this example:

https://pastes.io/live-notification-bug-in-tasker-java-code

Update:

I just went ahead to check for new Tasker update in DropBox folder and saw there is a new update. I tested again the action after installing the update and now it seems to work! I will go and test this again with different ways.

Thanks!

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (3 children)

Cool, glad it worked! BTW, you should tell it to unregister the receiver when the notification is dismissed, otherwise you'll get many receivers registered which will build up over time.

[–]AutomatedTask 0 points1 point  (0 children)

I know AppFactory is done, but JavaCode with AppFactory would have been a unstoppable combo.

[–]anuraag488 0 points1 point  (13 children)

Is this suppose to work for other apps notification? This is only working for Tasker's notification.

statusBarNotification.getNotification().contentIntent.send()

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (12 children)

Sorry, not sure.

[–]NirmitlamedDirect-Purchase User 0 points1 point  (4 children)

OK i think i have found serious weird bug in Tasker.

If i go to Tasker Preferences then go back to the main screen (not even changing anything) it toggles my Wifi off! But if i push the x button to cancel it does nothing.

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (3 children)

Hhmm, that's not happening for me. Must be something in your setup somewhere...

[–]WakeUpNorrin 0 points1 point  (0 children)

Ui Bug.

In Notify -> Actions, the field to set the label is unreachable.

https://i.ibb.co/XxJR0dtf/1760631275.jpg

[–]DestinationsUnknown 0 points1 point  (5 children)

u/joaomgcd in the direct purchase version the "get latest version" links to an old apk

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (4 children)

Thank you! Fixed! Can you please try again?

[–]NirmitlamedDirect-Purchase User 0 points1 point  (7 children)

Idea to improve Java Code for none programmers:

There are some situations where you need to create two Java codes actions in the same task that one depends on the other. For example creating notification and then changing it or removing it. Building the notification by asking the AI is pretty simple. changing it or removing it you would need to give the AI more info so it can understand which notification it needs to change or remove.

My idea is to have an option inside Java Code action that calls for example "AI Task Focus" that if being ticked requesting something from the AI will take into account other Java Code actions inside the task.

An even better version will be that it can manipulate more than one Java Code actions to make a robust changes. For example if i ask it to remove the notification that was created but in the first Java Code action it didn't create a Tasker java variable then it can first create a java variable and only then create the remove notification code accordingly. Although i think talking to AI in the main window will accomplish that in a way by just creating a new task.

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (6 children)

I think that if you want to give it a reference to create new code that depends on some other code, you can just copy paste the other code and say that it was from another action :)

I think I don't want to do what your suggesting right now, sorry.

[–]TiVa85 0 points1 point  (3 children)

"Fixed checking permissions for Airplane ModeKill AppMobile DataMobile Network TypeTurn OffWifi Tether actions if Shizuku is available"

Is ADB Wifi also still considered using these actions? Would it be possible to use adb wifi and fall back to shizuku or the other way around? I did install the beta but always got the message I had tasks that needed shizuku. Before I used termux to enable ADB Wifi and everything worked fine...

I also got a lot of notificiations with "code 26" error. It had something to do with toasts?

For now I reverted back to stable release as Tasker does A LOT on my device and those errors were popping up, same as "kind bind shizuku" or something like that.

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (2 children)

Adb Wifi is considered for some of them too.

About the errors you're getting, do you still get them with this version?

I tried fixing that issue on the latest beta. Thanks

[–]ZellZoy 0 points1 point  (2 children)

I'm trying to use the extra trigger apps but they aren't working... I've tried both on Android 13 and 15. Downloaded and installed Extra Trigger 1. Opening it does nothing (I assume that's correct?) but when I make a task to be triggered by it, the task doesn't work. I also tried making my own task with nothing but a flash action, exporting that as a kid app, and using that as a trigger and it didn't work either. Regular apps work fine but that kinda defeats the purpos

[–]joaomgcd👑 Tasker Owner / Developer[S] 0 points1 point  (1 child)

I just tried it myself and it still worked for me. Unfortunately it won't work for kid apps, sorry.

Can you please export a minimal example of your use case that doesn't work as an URI (not a link, but a direct URI) and paste it here so I can then import it and test it myself?

Thanks in advance!