[GUIDE][Difficulty: Advanced] Prompt to Edit Screenshot and Upload to Imgur - Tasker Tips & Tricks

If you're the kind who likes to post screenshots of your device (...like, say, you're making a picture guide to help people with Tasker tasks ), then you'll probably find it a bit tedious having to manually open your screenshot in an image editor app, edit it, and then manually uploading the edited file to an image hosting service such as Imgur. If you would like to automate some of these steps, then look no further!
Please note that my guide is set up with some particular free apps that I'm using, but it can be generalized to edit in other image editor apps or upload to other hosting services so long as you find out the proper intent. Thankfully, you can use apps such as Intent Intercept to capture the proper intent you'll need. On the other hand, I'm also using a few paid apps to make things a bit easier, but if you're getting into Tasker I highly recommend you purchase them as it will make things significantly easier.
Prerequisites
OPTIONAL: Snackbar Tasker Plugin to implement the prompt. Can be replicated using a Tasker scene, but Snackbar is free so I recommend grabbing it anyways.
AutoNotification or Notification Listener. You will need either in order to intercept notifications and toast messages.
OPTIONAL: AutoShare. You can use regular intent broadcasts from within Tasker to do this, but if you don't know what intent to use then AutoShare can help.
Uploader for Imgur (or any other hosting app with a sharing receiver)
Instructions
Enable the notification listener for AutoNotification or Notification Listener in Settings. Enable the Accessibility service for either app so it can intercept toast notifications.
Open a new profile and name it 'Screenshot Edit.'
Create an Event context and go to Plugin --> AutoNotification/Notification Listener and set it up to listen to the screenshot posted notification. Here's the information you'll need to do so. I recommend you set it to react to Only Created Notifications so it doesn't trigger when the notification is dismissed.
Code:
Notification Title: Screenshot captured.
Notification Text: Touch to view your screenshot.
Package Name: com.android.systemui
Exit the configuration for AutoNotification and create a new task named whatever it is you want. For me, I left the name blank because I won't be using the task anywhere else.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Now for the task...
Plugin --> Snackbar Tasker Plugin. For the title, put "Edit Screenshot?" or whatever else you want. For the items, put 'Yes,No.' For the commands, put 'yes,no.' Edit the colors to theme the snackbar however you would like.
Task --> If. Set it to %bs_command ~ yes. This is so you'll only edit/upload the screenshot if you want, otherwise it'll do nothing.
Code --> Run Shell. You'll want to run the following command:
Code:
ls /sdcard/Pictures/Screenshots
Write %File under "Store Output In". This will get the filenames of all the screenshots you have in your screenshot folder and put it into a variable.
Variables --> Variable Split. Under name put %File, but leave Splitter blank. This splits the filename variable into an array from File1...FileN with each variable holding an individual filename.
Variables --> Variable Set. Under name put %new and set it to %File(#). This gets the pointer to the latest filename in the filename array.
Variables --> Array Pop. Under Variable put %File, for the Position put %new, and for the To Var put down %file. In %file now you've got the filename of the screenshot you just took!
System --> Send Intent. This is the intent information you'll need to fill in:
Code:
Data: file:///storage/emulated/0/Pictures/Screenshots/%file
Package: com.iudesk.android.photo.editor
Class: app.activity.PhotoViewActivity
Target: Activity
If you have AutoShare installed like I recommended, then you can easily use its find intent option to find and automatically fill in most of this information. You will still need to manually specify the file using the %file variable, though.
Task --> End If.
Okay, so what we've done so far is set-up Tasker to automatically send the screenshot you took to your image editor app. Now you'll want it to automatically upload it to Imgur. Take note of which folder you're saving your edited screenshots in, because you'll need to reference it below when sending the path to the edited file.
Create a new Profile and name it Screenshot Upload.
Create an Event context, go to Plugin and choose AutoNotification Toast Intercept.
Choose Photo Editor for the app you want to intercept, and for the Notification Text you want to intercept write down "saved successfully."
Back out, and create a task with any name you want.
Code --> Run Shell. For the command, put this down:
Code:
ls /sdcard/Pictures/Edited
For Store Output In, put it in %File (just like the previous task).
Variables --> Variable Split. Split %File.
Variables --> Variable Set. Set name as %new and set it to %File(#)
Variables --> Array Pop. For variable put %File, under position put %new, and in the to var put %file.
System --> Send Intent. Here's the information you need:
Code:
Package: net.moosen.imgur
Class: net.moosen.imgur.DoUpload
Data: file:///storage/emulated/0/Pictures/Edited/%file
That's it! Enjoy the new automation of screenshot editing. You can go a little further to automate things by perhaps immediately sharing the Imgur link to your app of choice or push it with Pushbullet, but that's up to you. For me, this profile has been an immense help in putting together these guides. Let me know if there are any changes you would make.

Very cool implementation! I use literally the same setup to help with screenshots, but with some different Actions in certain places. My setup is like:
AN Intercept, AN click action for the notification, then use AutoInput to go through some steps to get to a very specific screen in a specific editor. Then a Profile for 'Gesture' (when I tilt the device to the left) uses AutoShare to share the file over to the (new plugin) AutoWeb API for direct upload to Imgur, then when the link comes back it puts it in the Clipboard and shows a Snackbar to confirm upload complete.
Definitely take a bit of time to setup, but it works like magic and sooo fast and automated it's well worth it!

Ratchet_Guy said:
Very cool implementation! I use literally the same setup to help with screenshots, but with some different Actions in certain places. My setup is like:
AN Intercept, AN click action for the notification, then use AutoInput to go through some steps to get to a very specific screen in a specific editor. Then a Profile for 'Gesture' (when I tilt the device to the left) uses AutoShare to share the file over to the (new plugin) AutoWeb API for direct upload to Imgur, then when the link comes back it puts it in the Clipboard and shows a Snackbar to confirm upload complete.
Definitely take a bit of time to setup, but it works like magic and sooo fast and automated it's well worth it!
Click to expand...
Click to collapse
Glad to see you here! I was actually inspired by your thread on /r/tasker, however, I didn't like the implementation that relied a bit too much on AutoInput in my view, so I thought to generalize it a bit using intents and shell commands.

MishaalRahman said:
Glad to see you here! I was actually inspired by your thread on /r/tasker, however, I didn't like the implementation that relied a bit too much on AutoInput in my view, so I thought to generalize it a bit using intents and shell commands.
Click to expand...
Click to collapse
Thanks! Glad to be here! Tasker Week has been great. Awesome to see the effort and detail that went into the Guides and Tutorials, screenshots and all.
Speaking of screenshots (lol) yes I was having lots of fun with AutoInput clicking around everywhere Eventually I did condense certain portions of it, but one thing I noticed is that depending on the imaging app, using an AutoShare Intent didn't quite get it to the exact screen I was looking for. Of course the beauty of Tasker is that just about anything can be customized for your exact/specific needs

MishaalRahman said:
Now for the task...
Plugin --> Snackbar Tasker Plugin. For the title, put "Edit Screenshot?" or whatever else you want. For the items, put 'Yes,No.' For the commands, put 'yes,no.' Edit the colors to theme the snackbar however you would like.
Task --> If. Set it to %bs_command ~ yes. This is so you'll only edit/upload the screenshot if you want, otherwise it'll do nothing.
Code --> Run Shell. You'll want to run the following command:
Code:
ls /sdcard/Pictures/Screenshots
Write %File under "Store Output In". This will get the filenames of all the screenshots you have in your screenshot folder and put it into a variable.
Variables --> Variable Split. Under name put %File, but leave Splitter blank. This splits the filename variable into an array from File1...FileN with each variable holding an individual filename.
Variables --> Variable Set. Under name put %new and set it to %File(#). This gets the pointer to the latest filename in the filename array.
Variables --> Array Pop. Under Variable put %File, for the Position put %new, and for the To Var put down %file. In %file now you've got the filename of the screenshot you just took!
System --> Send Intent. This is the intent information you'll need to fill in:
Code:
Data: file:///storage/emulated/0/Pictures/Screenshots/%file
Package: com.iudesk.android.photo.editor
Class: app.activity.PhotoViewActivity
Target: Activity
If you have AutoShare installed like I recommended, then you can easily use its find intent option to find and automatically fill in most of this information. You will still need to manually specify the file using the %file variable, though.
Task --> End If.
Okay, so what we've done so far is set-up Tasker to automatically send the screenshot you took to your image editor app. Now you'll want it to automatically upload it to Imgur. Take note of which folder you're saving your edited screenshots in, because you'll need to reference it below when sending the path to the edited file.
Create a new Profile and name it Screenshot Upload.
Create an Event context, go to Plugin and choose AutoNotification Toast Intercept.
Choose Photo Editor for the app you want to intercept, and for the Notification Text you want to intercept write down "saved successfully."
Back out, and create a task with any name you want.
Code --> Run Shell. For the command, put this down:
Code:
ls /sdcard/Pictures/Edited
For Store Output In, put it in %File (just like the previous task).
Variables --> Variable Split. Split %File.
Variables --> Variable Set. Set name as %new and set it to %File(#)
Variables --> Array Pop. For variable put %File, under position put %new, and in the to var put %file.
System --> Send Intent. Here's the information you need:
Code:
Package: net.moosen.imgur
Class: net.moosen.imgur.DoUpload
Data: file:///storage/emulated/0/Pictures/Edited/%file
That's it! Enjoy the new automation of screenshot editing. You can go a little further to automate things by perhaps immediately sharing the Imgur link to your app of choice or push it with Pushbullet, but that's up to you. For me, this profile has been an immense help in putting together these guides. Let me know if there are any changes you would make.
Click to expand...
Click to collapse
Hello and thank you for your guide. I was having some problems with getting the snack bar button to do anything but just ask. None of the responses did anything, my video which includes my question in greater detail is here. I wasn't able to put a link in the message because I am a new user so I can't put links in new posts but the YouTube video ID is U2OpwlK2BWc
If one goes to youtube dot com slash U2OpwlK2BWc they can watch the video.
Thanks again,
yonikasz

yonikasz said:
Hello and thank you for your guide. I was having some problems with getting the snack bar button to do anything but just ask. None of the responses did anything, my video which includes my question in greater detail is here. I wasn't able to put a link in the message because I am a new user so I can't put links in new posts but the YouTube video ID is U2OpwlK2BWc
If one goes to youtube dot com slash U2OpwlK2BWc they can watch the video.
Thanks again,
yonikasz
Click to expand...
Click to collapse
Video not loading for me

Video
MishaalRahman said:
Video not loading for me
Click to expand...
Click to collapse
Oh here I figured out how to put YouTube into the forum. Before I was on my mobile so I couldn't do that. Hope that helps.
Yoni

Related

[Tutorial][Tasker] Kernel Profile Toggle Widget with Tasker

Through the day, you often have different usage patterns that have different demands on your phone. Sometimes you want the most battery saving, others you just want raw power. Custom kernel allow you to configure things like the used frequencies to adapt to these changing demands. But doing this on the fly, switching between different configurations can be quite a hassle. Having a widget toggle right on your homescreen to do this would make it that much easier right? With Tasker and a bit of elbow grease you can have just that, as you’ll learn in this tutorial.
Since this is my first tutorial and english isn’t my native tongue, I would appreciate any help in improving it. So if you find errors or you think something could be worded differently to make it more understandable, please post your comments! This is done for you guys so you should be able to work with it
This tutorial is split into four steps:
Setup Variables
Setup Settings Tasks
Setup Mode Tasks
Setup Widget
Reference
Note: While this process works for any custom kernel that exposes the correct stubs, this tutorial is based around faux’s because that’s the one I’m currently using. If you want to make it work with your kernel, go to its thread and search/ask (in that order!) for the appropriate path. If you’ve gathered everything, please come back and post your findings so everyone can profit from them .
Note 2: To use the widget you create here, you need to be rooted!
Note 3: This is not meant to replace any of the kernel configuration apps on the play store. Certain features like governor, snake charmer, mpdecision, etc. are not (yet) supported by the widget and should be set with one of those.
Version History:
1.0 - Initial Release [29.05.2013]
1. Setup Variables
First we want to create some variables in Tasker. These will later be used to hold the values we want to set.
To do this, go to the Vars tab in Tasker. Now press the '+' icon and give the variable a name. In theory you can choose anything you want but it helps if you use a naming scheme that incorporates the name of the setting this variable is intended for. This could lead to conflicts with some internal variables of Tasker though, so I just put a single character in front of the name (i.e. ‘C’). Also the complete name has to be in UPPERCASE because Tasker likes its variables that way . As a value, just enter a zero for now.
For this widget, we will need variables for the minimum and maximum CPU frequencies, the GPU freqency and eco mode. We will also need a variable to store the widget state itself. I named mine simply STATE. If you have created all these variables following the guidlines above, you should end up with something likes this:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Variables after setup (ignore the other variables for now)​
In the next step we will create the tasks that will enable us to use the variables to change the settings.
2. Setup Setting Tasks
Now that we have our variables ready, we need some tasks to actually use them. I will do this in detail for one tasks and then give you the necessary informations for the other ones. They all follow the same pattern so it should be quite easy to do the rest yourself .
Go into the Tasks tab and click on the ‘+’ icon in the lower right corner. When asked for the name, you can again choose anything you’d like. I again prefer to give them something meaningful, so I use a template like “Set [name of setting]”. Setting the GPU frequency for instance would be named “Set Gpufreq”. After you put in your desired name, hit the checkmark and you should be taking to the task setup screen.
Task setup screen​
Now hit the little ‘+’ again and you’ll be presented with the different categories of actions Tasker can perform. To control the kernel settings we will need to execute shell commands. To do this first select Script and then Run Shell.
Selecting a shell command action​
You should now be presented with the following view:
Shell action setup screen​
Now we need to enter the command that we want to execute. These will follow this template most of the time:
Code:
echo [Tasker variable] > /path/to/kernel/specific/setting/stub
The last part is where the specific setting is controlled in the kernel you are using. The overall process is the same for any kernel though. You just have to find the correct path and the correct input for a setting. The threads of your prefered kernel are often a good start for this.
Since we named our task “Set Gpufreq” let us do exactly that. The path to the GPU frequency control on faux’s kernel can be found here
Code:
/sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk
Our corresponding variable would be something like %CGPUFREQ. (Tip: if you hit the little labels icon just right of the Command or other input boxes, Tasker will give you a list of system and user defined variables. Tapping on somehting in that lists will insert it into the corresonding box. This is neat if you can’t remeber all your variables or just want to make sure you don’t spell something wrong.) Looking at the command template, this gives us the following line:
Code:
echo %CGPUFREQ > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk
This is what we need to enter in the “Command” part of the shell action setup. Next, make sure the “Use Root” checkbox is set.
Use Root checkbox​
After you entered the command and set the “Use Root” checkbox we are done and you should see something like this:
Shell action for GPU frequency done​
If so, you can go back to the Tasks tab and start adding the next one. You’ll have to repeat this process for any kernel setting you want to controll from tasker. The stubs for all settings I use can be found in the reference section.
After all the wanted tasks have been setup, it’s time to put them to good use.
3. Setup Mode Tasks
This is the part where all the work above comes to fruition. Now we will define the modes that will be switchable via the widget. I use a setup with three modes and this tutorial will reflect that. You can however have as many different modes as you want. Just adapt what you learn here.
All our modes will follow the same pattern: first we set the variables to the values we want and then we use the settings tasks to put these values at the appropriate places.
The first mode is intended for my battery saving settings. Go again to the Tasks tab and tap the ‘+’ icon. As usual the name can be choosen freely but I’ll name mine “Batterymode”. In this mode, I want the minimum CPU frequency to be at 162 MHz, the maximum at 810 MHz, GPU at 200 MHz and Eco mode.
In the Task edit screen tap again on the ‘+’ and choose Variables->Variable Set.
Selecting Variable Set Action​
Fill in the name of the variable (or tap the labels icon and select it there). Now for the value you enter into the To field. This will depend on which setting you are trying to change here. As an example, let’s have a look at the CPU minimum frequency. The CPU frequency stubs expect their value in KHz. This means we have to multiply our values by 1000 to get the correct value. So our minimum frequency of 162 MHz becomes 162000 KHz and that’s what we need to set our variable to (just the number obviously). For the values of other settings, please check the reference. The action now looks like this:
Set Cpufreqlow Action​
After the variable is set, we now need to call our setting task. This is done with the Perform Task action found under the Task action category.
Selecting Perform Task Action​
To select the task to perform with this action, in the action edit screen tap on the magnifier icon on the upper right side. You will be presented with a list of exisiting tasks. Just pick the right one and you are done with this action, as you can leave the rest of the options as they are.
These two steps (1. Add Variable Set action 2. Add Perform Task action) have to be repeated for every setting you want to change. You should end up with something similiar to the following screenshot:
Battery Mode Task​
If you have finished your first mode, the subsequent modes will be much easier to set up. Just long press on the task in the Tasks tab until the action bar comes up, select Clone, give it a new name and hit the checkmark. Now you only have to enter the new task by tapping on it and then you can change the values of the Variable Set actions by also tapping on them. This way you can set up new modes very fast and efficient.
If you have your different modes setup as you like, it’s time to put them to good use. Let’s make a profile switcher widget!
4. Setup Widget
To setup a toggable widget, first create a new task and name it “Toggle”. Remember the variable we defined in the first step I named STATE? Now is the time we are going to use it. In the following Task Edit screen add an If action found under the Task category. This will enable us to check a variable for a certain state and execute actions based on that check. In the Action Edit screen of the If we just added, tap the labels icon and select the STATE variable (or whatever you named yours). Next click on the ‘~’ in the middle and select “ Math: Equals” and then enter a zero on the right side. Now add a Perform Task action and select the profile you want to have at the first position. For me, that is my battery oriented one. Then add a Variable Set action and use it to set STATE to 1.
Now that we set our profile, we also want the widget to reflect what state we currently are in. You can do this by changing the text of the widget, the icon or both. To change the text when execute a profile, add a Set Widget Label action found under the Tasker action category. As a name, enter “Toggle” and as a label anything you want the widget to show in the state you are currently in. I choose “Battery”. For the icon, add a Set Widget Icon action also under the Tasker group. Enter the name again and then select an icon you want to represent your state.
Now the first state of the widget is setup. For the next one, first add an Else action. Select the If option and once again select the STATE variabel and the “Math: Equals” option. This time however check for STATE = 1 instead of a zero as we did for the previous state. Now repeat the same process with the Perform Task and Variable Set actions (again increasing the number by one, so STATE is set to 2). And if you decided to change the label or icon of the widget, repeat the steps here again with the new text and/or icon.
Repeat the Else action step until you have all the profiles you want to toggle. For the very last step you need to set STATE to zero again instead of increasing it, so the widget loops around and starts again at the first profile.
After the last Else action, add an End If to finalize the task. Now it is ready to use as an widget.
Finished Toggle Task​
To do that, add a Tasker widget to your home screen. The actions to do that differ between launchers, so you'll have to find out how to do it in the one you are using. When adding the widget, you'll have the choice between Task and Task Timer. Select the first one and then pick the "Toggle" task from the list. Now just press the Back button to return to your home screen.
Congratulations, you now have your very own profile toggle! :good:
If you have any questions left or are stuck in a step, don't hesitate to post you comments/questions!
5. Reference
Property stubs for faux’s Nexus 4 kernel:
GPU frequency
Path: /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk
Value: Frequency in Herz
Example: Setting GPU frequency to 200 MHz
Code:
echo 200000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk
CPU maximum frequency
Path: /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Value: Frequency in Kiloherz
Example: Setting maximum CPU frequency to 1512 MHz
Code:
echo 1512000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
CPU minimum frequency
Path: /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Value: Frequency in Kiloherz
Example: Setting minimum CPU frequency to 162 MHz
Code:
echo 162000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Set Eco Mode
(only available if mpdecision is off)
Path: /sys/module/intelli_plug/parameters/eco_mode_active
Value: 1 for on, 0 for off
Example: Setting eco mode to on
Code:
echo 1 > /sys/module/intelli_plug/parameters/eco_mode_active
Set CPU frequency limit
(only available if snakecharmer is on)
Path: /sys/kernel/msm_cpufreq_limit/cpufreq_limit
Value: Frequency in Kiloherz
Example: Setting CPU frequency limit to 810 MHz
Code:
echo 810000 > /sys/kernel/msm_cpufreq_limit/cpufreq_limit

[GUIDE][Difficulty: Intermediate] Driving Mode (Answer Calls, Texts, Read Notifs)

If you don't have a bluetooth speaker in your car capable of answering phone calls or texts, and if you drive a lot you'll find yourself needing a way to respond to important messages without distracting yourself too much. Thanks to Tasker, you can make it so that you are prompted to respond to calls/texts and read notifications.
Prerequisites
Root Access to automatically answer calls
Secure Settings plugin
AutoNotification or Notification Listener to grab the notification text
We'll be making three profiles as a part of our driving mode setup. First up, an incoming call profile.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Instructions
First profile you will make should be called "Driving Mode - Incoming Call"
Create an Event context, go to Phone --> Phone Ringing. Leave the caller field blank. Exit out, and create a new task. You can name it if you want, but it's not necessary.
Once inside the task, your first action will be to create a Say command. Go to Alert --> Say. For the text you want the TTS to say, type in something like
Code:
Incoming call from %CNAME would you like to answer?
I would recommend you uncheck "Respect Audio Focus" so Tasker notifying you of a call will take precedence over whatever other audio is playing from your phone.
Input --> Get Voice. Go to Label and make it "DECIDE". You will come back to this action with a Goto later.
Task --> If. Set it to if %VOICE ~ Yes. Basically, if you saw "yes" then you've chosen to answer the call.
Plugin --> Secure Settings. Root Settings --> Phone Options. Pick "Answer Call."
Audio --> Speakerphone. Set it to On.
Task --> Else If. Set it to if %VOICE ~ No. This is if you choose to not answer the call.
Plugin --> Secure Settings. Root Settings --> Phone Options. Pick "End Call."
OPTIONAL: Phone --> Send SMS. Number should be %CNUM. Send a message with whatever you want telling them you're busy, for instance:
Code:
I am currently driving. I will respond back to you as soon as I am able. Thank you.
Task --> Else
Task --> Goto. Set type to "Action Label." Go to label "DECIDE" which is Action Number 2.
Task --> End If
Exit out, and finally, you will need to add one more context to the profile in order to ensure that this profile ONLY runs when you are actually driving. One way you can do this is to create a context connected to your car's bluetooth, you can make a shortcut on your homescreen to turn the task on/off when you get in the car, you can scan an NFC tag, you use location geofences ala AutoLocation, etc. For me, I use an NFC tag.
Here are screenshots of the task:
Next up, the notification reader:
Create a new Profile and title it "Driving Mode - Read Notification"
Create an Event context, go to Plugin --> AutoNotification and pick Intercept. Go to the apps to intercept and select only the apps that produce notifications that you think are important enough to bother you while driving. I'm sure you're not interested in knowing you're being invaded in Clash of Clans while driving....right?
Exit and create a task. Name it anything.
Alert --> Say. For the text, put %antitle. Check If and make it if %antitle is Set.
Alert --> Say. Make the text %antext. Check If and make it If %antext is Set.
Alert --> Say. Make the text %ansubtext. Check If and set it to If %ansubtext is Set.
If you are using Notification Listener instead, simply change %antitle to %nltitle, change %antext to %nltext, and change %ansubtext to %nlsubtext.
Exit out, and finally, you will need to add one more context to the profile in order to ensure that this profile ONLY runs when you are actually driving. One way you can do this is to create a context connected to your car's bluetooth, you can make a shortcut on your homescreen to turn the task on/off when you get in the car, you can scan an NFC tag, you use location geofences ala AutoLocation, etc. For me, I use an NFC tag.
Here is a screenshot of the task:
Finally, a text message response profile:
Create a new profile and name it "Driving Mode - Read Text."
Go to Event --> Phone --> Received Text. Make the Type Any and leave everything else blank.
Now, we'll create the task. Leave the name blank.
Alert --> Say. Make it say the following:
Code:
%SMSRN says %SMSRB. Would you like to respond?
Input --> Get Voice. Label it "REPEAT".
Task --> If. Set it to if %VOICE ~ Yes.
Input --> Get Voice. Label it "AGAIN."
Variables --> Variable Set. Set name to %voice and set it to %VOICE.
Alert --> Say. Make the text this:
Code:
%VOICE. Is this okay?
Input --> Get Voice.
Phone --> Send SMS. The number should be set to %SMSRF. Go down and add an If statement to this task, and set it to If %VOICE ~ Yes
Task --> Goto. Set the type to "Action Label" and set the label to "AGAIN."
Task --> Else If. Set it to if %VOICE ~ No
Phone --> Send SMS. Set the number to %SMSRF. Make the message something like this:
Code:
I am currently driving. I will respond back to you as soon as I am able. Thank you.
Task --> Else
Task --> Goto. Set type to "Action Label" and make the label "REPEAT."
Task --> Else If.
Here are screenshots of the task:
And that's it! Enjoy the profiles and let me know. I've attached the XMLs below you can import by moving them to /sdcard/Tasker/Profiles and then long-pressing on the Profiles tab up top while in Tasker and clicking on Import.
Input --> Get Voice. Go to Label and make it "DECIDE". You will come back to this action with a Goto later.
Click to expand...
Click to collapse
I do not have this option to sett Label? All I can set is Title?
Edit: I had to untick beginner mode in preferences
I also noticed that voice command does not work when writing "Yes", it has to be "yes" with small letters. If anyone else is facing simular troubles.
olskar said:
Input --> Get Voice. Go to Label and make it "DECIDE". You will come back to this action with a Goto later.
I do not have this option to sett Label? All I can set is Title?
Edit: I had to untick beginner mode in preferences
I also noticed that voice command does not work when writing "Yes", it has to be "yes" with small letters. If anyone else is facing simular troubles.
Click to expand...
Click to collapse
Doh! You're right, I've had Tasker enabled for so long that I forgot that Tasker hides that by default. And thanks for the correction on the voice part. My autocorrect screwed that up
How can I force the audio through the phone speaker versus Bluetooth if connected?
I want my whatsapp messages to be read through the speaker versus Bluetooth while I am driving only.
jskala said:
How can I force the audio through the phone speaker versus Bluetooth if connected?
I want my whatsapp messages to be read through the speaker versus Bluetooth while I am driving only.
Click to expand...
Click to collapse
That's not something Tasker can do, sorry. Get the app SoundAbout
jskala said:
How can I force the audio through the phone speaker versus Bluetooth if connected?
I want my whatsapp messages to be read through the speaker versus Bluetooth while I am driving only.
Click to expand...
Click to collapse
You can use BlueTask plugin
Hi, nice works!!
Question: can an email be fully read?
Regards,
What can I use instead of secure settings to pick up the call? Secure settings is bugged nowadays can't find root
Read Notification profile not importing
I can't get the Read Notification .prf.xml file to import at all. Anyone else experience this or can tell me what I might be doing wrong or if the file has an error in it? The other two imported just fine.
Thanks in advance for any assistance and clarification.

[GUIDE][Difficulty: Advanced] Read Google Calendar Events for the Day

You're a busy person, and you've decided to organize your busy life by placing all your events on Google Calendar. If this describes you, then you might like to know that you can query Calendar for its events and set it up to notify you however you want. This means you don't have to open the app or even display a widget if you want to see what your events for the day are. Here's how.
This guide is based heavily off of the work of redditor CallMeLucky but written to be more friendly and with more documentation. Credits for the implementation go to him.
Prerequisites
Google Calendar
Instructions
Create a new task, and name it "Get Events."
Variables --> Variable Convert. Convert %DATE, set the Function to "Date Time to Seconds" and Store Result In %date.
Variables --> Variable Set. Name %schedstart and set To
Code:
%date + (60*60*6)
This sets the start time to 6AM in the morning. If you want to make it earlier, change the 6 to a different number. CHECK DO MATHS!
Variables --> Variable Set. Name %schedend and set To
Code:
%date + (60*60*24)
This sets the end time to midnight. CHECK DO MATHS!
App --> Test App. Type "Calendar Title", Data %schedstart, Store Result In %event. Set the Label to "TEST NEXT EVENT." This is querying Google Calendar using the time to see if there's an event at that time.
App --> Test App. Type "Calendar Calendar", Data %schedstart, Store Result In %calendar. This is querying the calendar to see, if there's an event, which calendar it belongs to.
Task --> If. If %event(#) neq 0 AND %event1 !~ %doubleevent AND %calendar1 ~ *MYCALENDAR*. This will basically check to see if %event is empty or if it matches the previous event, which in either case means there is no new event at this time. Replace MYCALENDAR with the name of the calendar you want to pull from.
Variables --> Variable Convert. Name %schedstart, set Function to "Seconds to Long Date Time." Store Result In %time. Once you've found an event, convert the time it starts at to a human readable time.
Variables --> Variable Split. Name %time, splitter is 2016. We know what today's date is, so let's split the variable to only give us the time today and not the date.
Variables --> Array Push. Name %calevents, Position 999, Value should be
Code:
%event1, at %time 2
Here, we're pushing the event title and its time into an array that we'll read from later.
Variables --> Variable Set. Name %doubleevent, To %event1. Save the event title so when we do our next check we compare to see if it matches, if so, don't save it again!
Task --> End If.
Variables --> Variable Add. Name %schedstart, Value 900. Increment the time to check next by 15 minutes (ie. move up through the day).
Task --> Goto. Type "Action Label" and label should be "TEST NEXT EVENT". Check If and set it to If %schedstart < %schedend. Basically, loop back if we're still in the same day testing the calendar.
Alert --> Say. Text: "You have no events today." Check If and set it to if %calevents(#) eq 0
Alert --> Say. Text: "You have one event today." Check If and set it to if %calevents(#) eq 1.
Alert --> Say. Text: "You have %calevents(#) events today." Check If and set it to if %calevents(#) > 1.
Task --> For. Variable %eventtosay, Items %calevents). In this for loop, we're simply reading the calendar events we've found in order.
Alert --> Say. Text: "%eventtosay"
Task --> End For.
Here are screenshots of the task:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Now you might ask, what do I do with this task? That's up to you! You can have this task run whenever your alarm is dismissed if you're using an app like AlarmPad, or you can make it run when you dismiss an NFC tag using an app like Trigger.
Below, I am attaching the XML file for the task that you can import. IF YOU IMPORT THIS, YOU MUST EDIT ACTION #6 (THE IF ACTION) AND CHANGE *MYCALENDAR*. REPLACE "MYCALENDAR" WITH THE NAME OF THE CALENDAR YOU WANT TO PULL FROM. You can import a task by putting it in /sdcard/Tasker/tasks. Then when inside Tasker, long-press on the Tasks tab up top and press import.
I love this task. I've been using it for a hot minute. I have it run immediately after another task that uses an HTTP get to pull and read the weather for the day as well. Great combo to use with an "Alarm Dismissed" trigger like you suggested.
how about if you have multiple calendars?
jskala said:
how about if you have multiple calendars?
Click to expand...
Click to collapse
Then simply remove the if condition that requires you to set a specific calendar
jskala said:
how about if you have multiple calendars?
Click to expand...
Click to collapse
I second the motion.
I have one exclusively for my work schedule, and one for my personal schedule. It would be ideal to be able to add several calendars at once.
For example, today I had work and a service repair call for my place. Yesterday, I had work, my child had an appointment and a Parent Teacher Meeting all in different calendars. To know that there are three events or all on one schedule that lists the agenda would be cool.
in topic "5", when you say "app" what exactly I have to do? I didn't get it. Sorry I'm a newbie
---------- Post added at 02:56 AM ---------- Previous post was at 02:52 AM ----------
Erlonbie123 said:
in topic "5", when you say "app" what exactly I have to do? I didn't get it. Sorry I'm a newbie
Click to expand...
Click to collapse
omg, nevermind, sorry! lol
You can use just a couple of actions of CalendarTask plugin in order to that.
i love your idea, it's amazing thanks!!
i'm trying to work in a mod: i don't like the voiceover option, i prefer to receive a notification with the list of events. then if i click on the notification it should open the calendar to check the details.
my mod:
- removed 15. alert, 15. alert, 17. alert
- replaced 19. alert with "Notify sound": Title "Daily Agenda"; Text: "%eventtosay"; Action: "open google calendar"; if "%calevents(#) >0
doing like that i receive a notification with sound (i've added the calendar icon too) instead the voice over.
I have 2 problems, i hope you can help me:
1. all the events are showed once at the time in the same notification (e.g. if i have 3 events, i receive a notification with event 1, than change to event 2 and event 3 in few seconds); it would be nice to have a a list with all the events
2. when i click on the action to open the calendar, it opens the calendar in background without closing the notification panel (see the screenshot)
any suggestions??
thanks a lot!!
Great work
Hi, I like the calendar program. I have a question. Where do you get the Calendar Task plugin for reading different events? For example
Personal Calendar: Sister Birthday
Appointments: Dr. Appointment.
Etc.
Another feature that would be good is to read the events out for the week or have a drop down box with selecting By Week or By Day.
I'm trying to make tasker read my events of tomorrow. I changed %date + (60*60*25) and %date + (60*60*48)
Now I want it to say the day and date of tomorrow (for instance "14.03.2016. Tomorrow is Monday.").
I can't use the default variables like %DATE and %DAYW, because they are for the current day.
I already tried converting the schedstart value from seconds back to date.
flash629 said:
Hi, I like the calendar program. I have a question. Where do you get the Calendar Task plugin for reading different events? For example
Personal Calendar: Sister Birthday
Appointments: Dr. Appointment.
Etc.
Another feature that would be good is to read the events out for the week or have a drop down box with selecting By Week or By Day.
Click to expand...
Click to collapse
You find it on the play store obviously
flash629 said:
Hi, I like the calendar program. I have a question. Where do you get the Calendar Task plugin for reading different events?
Click to expand...
Click to collapse
https://play.google.com/store/apps/details?id=com.balda.calendartask
Thanks
j03x2 said:
https://play.google.com/store/apps/details?id=com.balda.calendartask
Click to expand...
Click to collapse
Thanks J03. Now I just have to try and learn it, unless you can give me some hints.
flash629 said:
Thanks J03. Now I just have to try and learn it, unless you can give me some hints.
Click to expand...
Click to collapse
Here you go! You can download an example profile from here:
https://plus.google.com/102582215848134314158/posts/BZfUp88jwc8
hmm
Weather
I like the program, but please forgive me. I'm using this routine but changing MyCalendar to *. For example: --> If %event(#) neq 0 AND %event1 !~ %doubleevent AND %calendar1 ~ *.
That will read ALL my calendars. The problem comes up after reading the "Event" it will keep on telling me the weather. That's what I'd like to stop. I may have 3 events in different calendars and it reads those events plus the weather for each.
I guess what's happening is because the "Events" are in different calendars I get the weather from each.
Is there away I can just get the weather once?
Thanks for your help.
Nice script! I tried using it for my university calendar but unfortunately it doesn't get the events right.
Today I have three events, one from 9:30 till 11:30, one from 11:30 till 13:30 and another one from 13:30 till 14:30. The script says I have 20 events today. It says all the events in 15 minute increments. Thats 5 (hours) x 4 (events per hour) = 20.
How would I solve this issue? Unfortunately this makes the script not very useful.
Please answer
In a previous post it was suggested that taking out the if statement would give you all your events for the day for all your calendars. I took mine out and it said that I had 72 events.
I changes the If statement in line 6 %calendar1 ~ *Appointments* to %calendar1 ~ ** and what I get is double events. For example Work event at 5:30am then again Work event at 7:15. I don't understand this.
I hope this post is monitored.
flash629 said:
In a previous post it was suggested that taking out the if statement would give you all your events for the day for all your calendars. I took mine out and it said that I had 72 events.
I changes the If statement in line 6 %calendar1 ~ *Appointments* to %calendar1 ~ ** and what I get is double events. For example Work event at 5:30am then again Work event at 7:15. I don't understand this.
I hope this post is monitored.
Click to expand...
Click to collapse
You still need the Variables --> Variable Set. Name %doubleevent, To %event1 and the If statement: %event1 !~ %doubleevent otherwise you will get double events like you mentioned.
Thank you MishaalRahman,
I have read numerous solutions to pulling events from Google Calendar, but none so elegant. I have recently discovered phones and more recently discovered Tasker. My skills are quite rusty but with the help others (you included) I am finding my way. This is a wonderful resource.
As some have already pointed out, this is a great task to include in a wake-up profile. However, not all of us work or sleep on a regular schedule. I remember the 'good ole days' when I could get by on just two jobs.
A moving time segment from 'now' to 'set_length' would be ideal. I think I can work that out. But Event location (address) to pass to Google Maps or Waze as a destination is a topic for which I haven't found much information. Do you (or anyone else) have any suggestions?

[GUIDE][Difficulty: Advanced] Create a Hotspot Monitor to Watch Who's Connected

If you use a WiFi hotspot, you might be interested in monitoring how many devices and which devices are still connected to it. This is useful for when you're sharing your hotspot with friends or family. There is no real way to do this easily in Android, but with some clever shell commands, variable manipulation, and database searching, we can do so using Tasker!
Disclaimer: this is a profile created by redditor StillAzure over on the /r/tasker forum. I have taken the liberty to add comments explaining each step of the process as well as make a few changes to make it work on devices that his implementation does not work on.
Prerequisites
Root Access
Snackbar Tasker Plugin. This is what handles the pop-ups telling you what devices are connected. Not necessary but if you want to just import and forget just install it anyways.
AutoNotification. This handles the notification telling you how many devices are connected by creating a persistent notification.
The IEEE OUI database. Download it at http://standards-oui.ieee.org/oui.txt. I've found that this download server is slow and prone to time-out, so try it a few times until it fully downloads. Move it to /sdcard/Tasker. The redditor's task downloads it automatically but again it could fail and you wouldn't know without a progress bar telling you so.
Instructions
First profile will be the hotspot monitor profile (this is my own creation separate from the redditor's because his method did not trigger the profile):
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Create a new profile and name it Hotspot Monitor.
Create an Event context and go to System --> Intent Received. Set Action to:
Code:
android.net.wifi.WIFI_AP_STATE_CHANGED
Leave everything else blank.
Enter the task creation, but leave the name blank.
Task --> If. If %wifi_state eq 13. This means the hotspot is active.
Variables --> Variable Set. Set %Hotspot to 1.
Task --> Else.
Plugin --> AutoNotification Cancel. Id: 55555. This will cancel the persistent notification from the hotspot monitor if the hotspot disconnects.
Variables --> Variable Set. Set %Hotspot to 0. This means the hotspot has disconnected.
Task --> End If.
Here's a screenshot of the task:
Next, we'll set up the task that actually looks up the manufacturer of the device connected to your hotspot by using its MAC ID.
Create a task and name it "MAC Lookup"
File --> Test File. Type: Modified. Data: Tasker/oui.txt. Store Result In: %MODIFIED. Check "continue task after error."
Task --> If. If %err Set. Basically, if error is set, it means you don't have the database in the folder, so we'll need to download it.
Plugin --> AutoNotification. Title: OUI Database not found! Text: Downloading the database... Id: Database. Persistent: true.
Task --> Goto. Type: Action Label. Label: DOWNLOAD.
Task --> End If.
Variables --> Variable Set. Name %TODAY to %DATE.
Variables --> Variable Convert. Name %TODAY, Function "Date Time to Seconds."
Variables --> Variable Set. Name %SINCE to (%MODIFIED - %TODAY)/24/60/60. Check "Do Math." This is basically figuring out how many days it has been since the oui.txt has been last modified.
Task --> If. Set it to if %SINCE > 14. If it's been more than 2 weeks since the database has been modified, we'll update it.
Plugin --> AutoNotification. Title: OUI Database outdated! Text: Updating the database... Id: Database. Persistent: true.
Net --> HTTP Get. Severort set to http://standards-oui.ieee.org/oui.txt Make the file output to Tasker/oui.txt
Plugin --> AutoNotification Cancel. Id: Database
Plugin --> AutoNotification. Title: Database has been downloaded. Text: You can now swipe away this notification. Id: Database.
Task --> End If.
Variables --> Variable Clear. Name %MANU. This clears the current array of manufacturer IDs if it's already set (so we'll only get the most currently connected devices to our hotspot).
Variables --> Array Clear. Name %MANU. Same idea.
Code --> Run Shell. Run this command:
Code:
ip neigh show dev wlan0 | grep -i -e reachable -e delay | grep -o' ..\:..\:..'
Check "Use Root", Store Output In %CLIENTS, and Store Errors in %error. Check "Continue Task after Error". This action basically gets the currently connected devices' MAC addresses and puts it into an array.
Task --> If. If %error is Set. Meaning no devices are connected.
Alert --> Flash. Text: Zero clients were found.
Task --> Stop. Exit the task.
Task --> End If.
Variables --> Variable Split. Name: %CLIENTS. Leave Splitter blank.
Task --> For. Variable is %for and Items are 2:%CLIENTS(#). Here, we're looping through each connected MAC ID and using our OUI database to look up and determine what manufacturer it belongs to.
Variables --> Variable Convert. Name %CLIENTS(%for). Function: To Upper Case.
Variables --> Variable Search Replace. Variable: %CLIENTS(%for), Search set to : (a colon), check Replace Matches, and for Replace With make it a blank space.
Code --> Run Shell. Here's the command:
Code:
sed -n '/%CLIENTS(%for)/ p' /sdcard/Tasker/oui.txt
Check Use Root, Store Output In %MANU(%for) and check Continue Task after Error.
Variables --> Variable Section. Name %MANU(%for) From 23, Length 100. Cut out all the extraneous data.
Task --> End For.
Here's screenshots of the task:
Next, we'll set up the profile that triggers when the hotspot is confirmed to be on.
Create a new profile and name it "Hotspot Connected."
Create a new State context and go to Variables --> Variable Value. Set it to when %Hotspot eq 1.
Create a new task, but you don't need to name it anything.
Task --> Perform Task. Name: MAC Lookup.
Variables --> Variable Set. Name %PPLCOUNT to %CLIENTS(#)-1. This gets us how many clients are connected.
Task --> If. If %CLIENTS(2) !Set. Meaning nobody is connected.
Variables --> Variable Set. Name: %msg to <font color=yellow>No one's there!
Task --> Else
Variables --> Variable Set. Name: %msg to <font color=red>%PPLCOUNT <font color=white>people are still connected!
Task --> End If.
Variables --> Variable Join. Name %MANU, Joiner is , (a comma). This turns the manufacturer array into a comma-separated list.
Plugin --> AutoNotification. Title: Warning! Text: Your hotspot is still on! %msg Action on Touch: CLIENTS. Id: 55555. Persistent: true. Title Expanded: List of Registered clients:
That's it for this task. Exit out, and add a time context to this profile. Set it to every 5 minutes so your hotspot notification will update.
Here are screenshots of the task:
Finally, we will make the profile that triggers when you click on the notification.
Create a new profile and name it Hotspot Information.
Create an Event context and go to Plugin --> AutoNotification Event. Filter: CLIENTS.
Create a task with no name. Go to the task editor.
Plugin --> Snackbar Tasker Plugin --> Snackbar Without Button. Message: No one is connected to the hotspot! At the bottom, check If and set it to if %MANU !Set.
Plugin --> Snackbar Tasker Plugin --> Snackbar Without Button. Message: Connected devices: %MANU. Check If at the bottom and set it to if %MANU is Set.
Here's a screenshot of the task:
I've attached the XMLs below. Please import them, but read through the labels and instructions above if you want to understand how these profiles work and how to edit them in the future.
Hi,
I am getting this error. Please see the attachment. Where am i going wrong?
did not get it with the auto notification. how do i change the name?
/u/StillAzure here, didn't notice this thread lol.
jayzero76 said:
did not get it with the auto notification. how do i change the name?
Click to expand...
Click to collapse
What name again?
iamronin said:
Hi,
I am getting this error. Please see the attachment. Where am i going wrong?
Click to expand...
Click to collapse
It means there's no client connected. Are you sure there are any?
If you are rooted, try arcais netcut (cant link because i am new) which helps you to check who is connected to your network and also lets you kill the connection (Even if you are on someone elses connection) [WORKS IN ANDROID, IOS, MAC WINDOWS , LINUX . 100% TESTED]
Hope this helps!
Getting following error in Mac lookup task
EDIT
that's my bad
Where's the MAC Lookup task? You've got everything else to import except it.

[PROJECT] Screen Recorder

Hello!
I've made a tasker project to record screen since i don't wanna use an extra app when I can do it with Tasker. I'm using it in a Zooper Widget, but you can as well export it as app.
NOTES:
1) Please let me know if you think that the "code" can be improved or that I did something unnecessary. I'm still a noob.
2) You have to run the task "Start recording" in order to start.
Click to expand...
Click to collapse
REQUIREMENTS:
● Root
● Tasker
● AutoInput Full version
● AutoNotification Full version
Click to expand...
Click to collapse
FEATURES:
● Enable/disable "show touches" option from developer options (it is done through a shell code,
)
● Set custom name for video file (the video gets saved in /sdcard0/AutoInput/ )
Click to expand...
Click to collapse
DOWNLOAD: Record_Screen.prj.xml (file is also attached at the end of post)
SCREENSHOT:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
#Henkate said:
Hello!
I've made a tasker project to record screen since i don't wanna use an extra app when I can do it with Tasker. I'm using it in a Zooper Widget, but you can as well export it as app.
NOTES:
REQUIREMENTS:
FEATURES:
DOWNLOAD: Record_Screen.prj.xml (file is also attached at the end of post)
SCREENSHOT:
Click to expand...
Click to collapse
Thanks for the cool tasker Project. It works great. I came across one error on my end. That was just the fact I didn't buy auto input and notification. I had only the lite version. Once I bought them everything worked perfectly. Thanks again pal.
Salithox said:
Thanks for the cool tasker Project. It works great. I came across one error on my end. That was just the fact I didn't buy auto input and notification. I had only the lite version. Once I bought them everything worked perfectly. Thanks again pal.
Click to expand...
Click to collapse
Im glad it helps you.
Ive edited the post saying that the full version is required for that apps.
By the way, i found out that screen can be recorded with shell code too, so AutoInput wont be required anymore. I feel bad that in a way youve purchased both apps when this can be done without it. But there are more things which can be done with this app..
I will work on an update which check if phone is rooted or not and if is rooted, it will use only shell codes and if it isnt rooted, then it will use AutoInput and Secure Settings Plugin.
My reply on reddit tasker:
Umm, then maybe I'll make an update which check if ROOT is available with %ROOT variable and use secure settings if phone isn't rooted.
I've got screenrecord working fine through shell code. Screenrecord through shell ( write in terminal emulator screenrecord --help ):
- video resolution
- set the video bit rate, in bits per second. Value may be specified as bits or megabits, e.g. '4000000' is equivalent to '4M'. Default 4Mbps.
- add additional information, such as timestamp overlay, that is helpful in videos captured to illustrate bugs
- Set the maximum recording time, in seconds. Default / maximum is 180.
Now I'm thinking to use shell codes for this and don't use autoinput & autonotification . I don't know, is just an idea
Click to expand...
Click to collapse
EDIT: It seems that screenrecord through shell can be stopped by CTRL-C or when the video reach the specified time. AutoInput still the winner.
#Henkate said:
Im glad it helps you.
Ive edited the post saying that the full version is required for that apps.
By the way, i found out that screen can be recorded with shell code too, so AutoInput wont be required anymore. I feel bad that in a way youve purchased both apps when this can be done without it. But there are more things which can be done with this app..
I will work on an update which check if phone is rooted or not and if is rooted, it will use only shell codes and if it isnt rooted, then it will use AutoInput and Secure Settings Plugin.
My reply on reddit tasker:
EDIT: It seems that screenrecord through shell can be stopped by CTRL-C or when the video reach the specified time. AutoInput still the winner.
Click to expand...
Click to collapse
No worries about having to buy the apps, I was already going to. I just honestly never got around to it. I like the idea of having full Shell commands, but I feel as you have already proven that AI and AN are the way to go. Keep up the good work, and if you ever need testers for stuff feel free to hit me up.
I wanted to share my version of your "Screen Record" project.
Didn't find any good reason to start a new thread, given the fact that I started from your code.
That being said, I've made many changes to it to suit my personal needs and I always keep adding things.
Android version: 8.0 (needed for long tap)
The main changes on the attached "project" file are:
Removed the use of global variables and the use of scenes
Recording is now initiated from a Quick Settings tile (single tap for recording with touches, long tap for recording without touches)
During the recording, I block all notifications
The recording stops in two ways: a) press tile or b) shake phone. (I prefer latter so as the video to remain clean)
The video has a default name. Once recording stops, user is prompted to enter a new name. (I do that using the AWESOME AutoTools, but can be easily replaced by a scene)
At the end, the folder containing the video is added.
Additional (not included) and future functionality:
Share file with specified device using Join
[Future] Select directory to save the file
[Future] Define a time for which the file should remain stored, then it gets deleted (I tend to forget files!)
Requirements:
Root, to enable show touches (can be overpassed using AutoInput)
AutoInput for recording (required)
AutoNotification for tile and blocking notifications (optional: can use Tasker tile and not block notifications)
AutoTools for a RegEx extraction and dialogue displace (optional: can be replaced by tasker actions and a scene)
Some different icons (attached zip file): I've used a bunch of icons (copy the Essential Set folder to your Tasker>.icn directory), credits to the creators at https://www.flaticon.com/ (Essential Set)
If anyone wants help in editing this, I'm more than happy to help.
Also if you can think of any features to be added, please let me know.
sumotori1 said:
I wanted to share my version of your "Screen Record" project.
Didn't find any good reason to start a new thread, given the fact that I started from your code.
That being said, I've made many changes to it to suit my personal needs and I always keep adding things.
Android version: 8.0 (needed for long tap)
The main changes on the attached "project" file are:
Removed the use of global variables and the use of scenes
Recording is now initiated from a Quick Settings tile (single tap for recording with touches, long tap for recording without touches)
During the recording, I block all notifications
The recording stops in two ways: a) press tile or b) shake phone. (I prefer latter so as the video to remain clean)
The video has a default name. Once recording stops, user is prompted to enter a new name. (I do that using the AWESOME AutoTools, but can be easily replaced by a scene)
At the end, the folder containing the video is added.
Additional (not included) and future functionality:
Share file with specified device using Join
[Future] Select directory to save the file
[Future] Define a time for which the file should remain stored, then it gets deleted (I tend to forget files!)
Requirements:
Root, to enable show touches (can be overpassed using AutoInput)
AutoInput for recording (required)
AutoNotification for tile and blocking notifications (optional: can use Tasker tile and not block notifications)
AutoTools for a RegEx extraction and dialogue displace (optional: can be replaced by tasker actions and a scene)
Some different icons (attached zip file): I've used a bunch of icons (copy the Essential Set folder to your Tasker>.icn directory), credits to the creators at https://www.flaticon.com/ (Essential Set)
If anyone wants help in editing this, I'm more than happy to help.
Also if you can think of any features to be added, please let me know.
Click to expand...
Click to collapse
Those are great improvements!
You're free to create a new thread. That way, more people can see your project. It's your choice.
By the way, I've seen your post just because I've checked that page where I can see all the threads I've created, otherwise I wouldn't have seen your post because you haven't quoted my post nor mentioned me. Just a friendly tip, next time you want to contact/ask someone thing or reply him, you should quote his post or mention his name because he'll receive a notification.
@#Henkate Yes should have done that pal, sorry. Hope this one at least works.
I feel you on the use of plugins. That's why I mentioned the fact that all but AutoInput can be substituted for something Tasker native. Maybe I should try and do the same variant without (at least) AutoTools for others to use it more freely. But I'm rubbish on the artistic side of a GUI. But a simple dialogue will suffice I guess.
sumotori1 said:
@#Henkate Yes should have done that pal, sorry. Hope this one at least works.
I feel you on the use of plugins. That's why I mentioned the fact that all but AutoInput can be substituted for something Tasker native. Maybe I should try and do the same variant without (at least) AutoTools for others to use it more freely. But I'm rubbish on the artistic side of a GUI. But a simple dialogue will suffice I guess.
Click to expand...
Click to collapse
I'm sorry for the late reply.
Yep, it worked. I've got the notification .
Forget what I've wrote about the plugins. I've edited my post after I've wrote that but I see that you've already read it. I've forgot that I've used AutoInput and AutoNotification myself lol.
To be honest, i'm not good at designing neither .
I'm not using Tasker anymore since some time, but I'm looking forward to see what further changes you'll make to your project. Good luck!
Hi, I use Stork.ai. It's the best for me.

Categories

Resources