How are you XDA members?!
I decided to share you my anti-theft little project I was working on. Maybe now is a bit smaller but hope that with time it'll become more complex and larger with possible contributions from you. And of course I'll look for make it better, and if it's possible to add new features.
How it works?
By now I just included 3 main profiles that can be used almost on all related tasks. I decided to do it just because you may have different requirements or likes than me, so. . . USE YOUR BRAIN AND IMAGINATION TO BUILD YOUR OWN ANTI-THEFT SYSTEM.
But don't worry, as time passes I will be adding customized profiles for every possible situation. --> You have now available custom presets!, scroll down to see them.
Main features
- Lock/Unlock device (disable touches, show a permanent message. . .)
- Lock/Unlock device by PIN (stablishes a second lockscreen = phone built-in, with customized password)
- Prevent unwanted apps installation
- Alert sounds and spoken TTS
- SIM verification + Auto-Send SMS
- Freeze/Unfreeze apps
- Lock specific tasks to be executed
- Lock apps with fully customized lockscreen and password
- Record ambient audio (hidden)
- Take Photo, Video, and Screenshot of display (hidden)
- Encrypt/Decrypt files
- Zip/Unzip files
- And more. . .
PROFILES (x4)
Code:
[COLOR="Blue"]Received SMS (lock)[/COLOR]
[U]Event[/U]: Received Text [ Type:SMS Sender:* Content:-phone-lock- ]
[COLOR="Blue"]Received SMS (unlock)[/COLOR]
[U]Event[/U]: Received Text [ Type:SMS Sender:* Content:-phone-unlock- ]
[COLOR="Blue"]StartUp Device[/COLOR]
[U]Event[/U]: Device Boot
[COLOR="Blue"]Launched Apps[/COLOR]
[U]Application[/U]: Adobe Acrobat or Firefox. . .
TASKS (x21)
Anti-Theft
Code:
[COLOR="Blue"]Capture (camera)[/COLOR]
[U]A1[/U]: Take Photo [ Camera:Rear Filename:TaskerCam_%DATE_%TIME Naming Sequence:None Insert In Gallery : Off Discreet : On Resolution:4160x3120 Scene Mode:Auto White Balance:Auto Flash Mode : Off Focus Mode:Infinity ]
[COLOR="Blue"]Capture (screen)[/COLOR]
[U]A1[/U]: AutoInput Screen Capture [ Configuration:Screenshot Path: /storage/emulated/0/AutoInput/screencapture.png Palette: false Get Average Color : false Timeout (Seconds):200 ]
[U]A2[/U]: Run Shell [ Command:/system/bin/screencap -p /sdcard/Download/screenshotname.png Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Lock Apps[/COLOR]
[U]A1[/U]: Variable Set [ Name:%AllowAppHide To:SECURITY CODE Do Maths : Off Append : Off ]
[U]A2[/U]: Show Scene [ Name:Apps Lock Display As : Overlay, Blocking, Full Window Horizontal Position:100 Vertical Position:100 Animation:Fade Show Exit Button : Off Continue Task Immediately : On ]
[U]A3[/U]: Wait Until [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ] If [ %AllowApp = xxx ]
[U]A4[/U]: Destroy Scene [ Name:Apps Lock ]
[U]A5[/U]: Variable Clear [ Name:%AllowApp Pattern Matching : Off ]
[U]A6[/U]: Variable Clear [ Name:%AllowAppHide Pattern Matching : Off ]
[COLOR="Blue"]Lock Device[/COLOR]
[U]A1[/U]: AutoInput Modes [ Configuration:Gestures: Enable Timeout (Seconds):0 ]
[U]A2[/U]: Secure Settings [ Configuration:Screen & Keyboard Lights On 1 Second Timeout (Seconds):0 ]
[U]A3[/U]: Run Shell [ Command:settings put global policy_control immersive.status=* Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A4[/U]: Show Scene [ Name:Lost Phone Display As : Overlay, Blocking, Full Window Horizontal Position:100 Vertical Position:100 Animation:None Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Unlock Device[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Lost Phone ]
[U]A2[/U]: AutoInput Modes [ Configuration:Gestures: Disable Timeout (Seconds):0 ]
[U]A3[/U]: Run Shell [ Command:settings put global policy_control immersive.status=null Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Lock Device (PIN) [2° lockscreen][/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Clear Password Timeout (Seconds):0 ]
[COLOR="Blue"]Unlock Device (PIN) [2° lockscreen][/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Clear Password Timeout (Seconds):0 ]
[COLOR="Blue"]Lost Phone (warning)[/COLOR]
[U]A1[/U]: Notification Volume [ Level:0 Display : Off Sound : Off ]
[U]A2[/U]: Perform Task [ Name:Lock Device Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop : Off ]
[U]A3[/U]: Variable Set [ Name:%smsnum To:%SMSRF Do Maths : Off Append : Off ]
[U]A4[/U]: Variable Set [ Name:%volmultimedia To:%VOLM Do Maths : Off Append : Off ]
[U]A5[/U]: Media Volume [ Level:15 Display : Off Sound : Off ]
[U]A6[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_6_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A7[/U]: Wait [ MS:500 Seconds:7 Minutes:0 Hours:0 Days:0 ]
[U]A8[/U]: Say [ Text:This device has been lost. If you are listening to this, please stand by with the phone in front of you. Once you have heard this message twice, the phone will automatically call its owner. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A9[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_3_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A10[/U]: Wait [ MS:500 Seconds:3 Minutes:0 Hours:0 Days:0 ]
[U]A11[/U]: Say [ Text:This device has been lost. If you are listening to this, please stand by with the phone in front of you. Once you have heard this message once, the phone will automatically call its owner. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A12[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_3_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A13[/U]: Wait [ MS:500 Seconds:3 Minutes:0 Hours:0 Days:0 ]
[U]A14[/U]: Say [ Text:This device has been lost. If you are listening to this, please stand by with the phone in front of you. Now pay attention to the following message. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A15[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_3_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A16[/U]: Wait [ MS:500 Seconds:3 Minutes:0 Hours:0 Days:0 ]
[U]A17[/U]: Say [ Text:Please, answer the call that will soon be made. No interaction is required from you with the device. Just hold the phone to your ear as soon as finishes this message. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A18[/U]: Media Volume [ Level:%volmultimedia Display : Off Sound : Off ]
[U]A19[/U]: Call [ Number:%smsnum Auto Dial : On ]
[COLOR="Blue"]Record Audio[/COLOR
[U]A1[/U]: Easy Voice Recorder Pro [ Configuration:Record Timeout (Seconds):0 ]
[U]A2[/U]: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ]
[U]A3[/U]: Easy Voice Recorder Pro [ Configuration:Stop Timeout (Seconds):0 ]
[U]A4[/U]: Record Audio [ File:/xxx/TaskerAudio_%DATE_%TIME Source:Microphone Max Size:0 Codec:AAC Format:3GPP ]
[U]A5[/U]: Wait [ MS:0 Segunds:1 Minutes:0 Hours:0 Days:0 ]
[U]A6[/U]: Stop Record Audio
[COLOR="Blue"]SIM (check)[/COLOR]
[U]A1[/U]: Set Clipboard [ Text:%SIMNUM Add : Off ]
[U]A2[/U]: Flash [ Text:SIM S/N: '%SIMNUM' Long:eek:n ]
[COLOR="Blue"]SIM (validation)[/COLOR]
[U]A1[/U]: Variable Set [ Name:%sim To:xxx Do Maths : Off Append : Off ]
[U]A2[/U]: Variable Set [ Name:%recoverphone To:+xxx Do Maths : Off Append : Off ]
[U]A3[/U]: Secure Settings [ Configuration:Airplane Mode Disabled Timeout (Seconds):0 ] If [ %AIR ~ on ]
[U]A4[/U]: Wait [ MS:0 Seconds:30 Minutes:0 Hours:0 Days:0 ] If [ %AIR ~ on ]
[U]A5[/U]: Send SMS [ Number:%recoverphone Message:Changed SIM detected on 'xxx'
Phone: %PNUM
SIM: %SIMNUM
Operator: %TNET
Location: %LOC / %LOCN
Precission: %LOCACC / %LOCNACC
Battery: %BATT% Store In Messaging App : Off Continue Task After Error : On ] If [ %SIMNUM !~ sim ]
Extras
Code:
[COLOR="Blue"]Apps Installation (allow)[/COLOR]
[U]A1[/U]: Run Shell [ Command:mount -o rw,remount /system ; chmod 644 /system/app/PackageInstaller/PackageInstaller.apk; chmod 644 /system/priv-app/PackageInstaller/PackageInstaller.apk ; mount -o ro,remount /system Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Apps Installation (deny)[/COLOR]
[U]A1[/U]: Run Shell [ Command:mount -o rw,remount /system ; chmod 000 /system/app/PackageInstaller/PackageInstaller.apk; chmod 000 /system/priv-app/PackageInstaller/PackageInstaller.apk ; mount -o ro,remount /system Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Compress Files[/COLOR]
[U]A1[/U]: Run Shell [ Command:cd /xxx && tar -cf xxx.xxx "$$$" && gzip -x xxx.xxx && cd "###" && rm -r * .* ; cd /xxx && mv -f xxx.xxx.gz "€€€" Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: Continue Task After Error : On ]
[COLOR="Blue"]Connectivity (modes)[/COLOR]
[U]A1[/U]: Run Shell [ Command:svc wifi xxx Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A2[/U]: Run Shell [ Command:svc data xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A3[/U]: Run Shell [ Command:settings put secure location_providers_allowed xgps Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A4[/U]: Run Shell [ Command:service call bluetooth_manager x Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A5[/U]: Run Shell [ Command:service call nfc x Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A6[/U]: Run Shell [ Command:settings put global airplane_mode_on x; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Encrypt Files[/COLOR]
[U]A1[/U]: Variable Set [ Name:%filetoencrypt To:xxx Do Maths : Off Append : Off ]
[U]A2[/U]: Variable Set [ Name:%encryptedfile To:xxx Do Maths : Off Append : Off ]
[U]A3[/U]: Variable Set [ Name:%password To:xxx Do Maths : Off Append : Off ]
[U]A4[/U]: Java Function [ Return:fis Class Or Object:FileInputStream Function:new {FileInputStream} (String) Param:%filetoencrypt Param: Param: Param: Param: Param: Param: ]
[U]A5[/U]: Java Function [ Return:fos Class Or Object:FileOutputStream Function:new {FileOutputStream} (String) Param:%encryptedfile Param: Param: Param: Param: Param: Param: ]
[U]A6[/U]: Java Function [ Return:passbytes Class Or Object:(String) %password Function:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A7[/U]: Java Function [ Return:sks Class Or Object:SecretKeySpec Function:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
[U]A8[/U]: Java Function [ Return:cipher Class Or Object:Cipher Function:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
[U]A9[/U]: Java Function [ Return: Class Or Object:cipher Function:init {} (int, Key) Param:1 Param:sks Param: Param: Param: Param: Param: ]
[U]A10[/U]: Java Function [ Return:cos Class Or Object:CipherOutputStream Function:new {CipherOutputStream} (OutputStream, Cipher) Param:fos Param:cipher Param: Param: Param: Param: Param: ]
[U]A11[/U]: Java Function [ Return:rb Class Or Object:byte[] Function:new {byte[]} (int) Param:4500 Param: Param: Param: Param: Param: Param: ]
[U]A12[/U]: Java Function [ Return:b Class Or Object:fis Function:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
[U]A13[/U]: Java Function [ Return: Class Or Object:cos Function:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ] If [ b != -1 ]
[U]A14[/U]: Goto [ Type:Action Number Number:12 Label:ReadFile ] If [ b != -1 ]
[U]A15[/U]: Java Function [ Return: Class Or Object:cos Function:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A16[/U]: Java Function [ Return: Class Or Object:cos Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A17[/U]: Java Function [ Return: Class Or Object:fis Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[COLOR="Blue"]Decrypt Files[/COLOR]
[U]A1[/U]: Variable Set [ Name:%filetodecrypt To:xxx Do Maths : Off Append: Off ]
[U]A2[/U]: Variable Set [ Name:%decryptedfile To:xxx Do Maths : Off Append : Off ]
[U]A3[/U]: Variable Set [ Name:%password To:xxx Do Maths : Off Append : Off ]
[U]A4[/U]: Java Function [ Return:fis Class Or Object:FileInputStream Function:new {FileInputStream} (String) Param:%filetodecrypt Param: Param: Param: Param: Param: Param: ]
[U]A5[/U]: Java Function [ Return:fos Class Or Object:FileOutputStream Function:new {FileOutputStream} (String) Param:%decryptedfile Param: Param: Param: Param: Param: Param: ]
[U]A6[/U]: Java Function [ Return:passbytes Class Or Object:(String) %password Function:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A7[/U]: Java Function [ Return:sks Class Or Object:SecretKeySpec Function:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
[U]A8[/U]: Java Function [ Return:cipher Class Or Object:Cipher Function:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
[U]A9[/U]: Java Function [ Return: Class Or Object:cipher Function:init {} (int, Key) Param:2 Param:sks Param: Param: Param: Param: Param: ]
[U]A10[/U]: Java Function [ Return:cis Class Or Object:CipherInputStream Function:new {CipherInputStream} (InputStream, Cipher) Param:fis Param:cipher Param: Param: Param: Param: Param: ]
[U]A11[/U]: Java Function [ Return:rb Class Or Object:byte[] Function:new {byte[]} (int) Param:4500 Param: Param: Param: Param: Param: Param: ]
[U]A12[/U]: Java Function [ Return:b Class Or Object:cis Function:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
[U]A13[/U]: Java Function [ Return: Class Or Object:fos Function:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ] If [ b != -1 ]
[U]A14[/U]: Goto [ Type:Action Number Number:12 Label:ReadFile ] If [ b != -1 ]
[U]A15[/U]: Java Function [ Return: Class Or Object:fos Function:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A16[/U]: Java Function [ Return: Class Or Object:fos Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A17[/U]: Java Function [ Return: Class Or Object:cis Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[COLOR="Blue"]Freeze Apps[/COLOR]
[U]A1[/U]: Run Shell [ Command:pm disable xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Unfreeze Apps[/COLOR]
[U]A1[/U]: Run Shell [ Command:pm enable xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Lock Tasks[/COLOR]
[U]A1[/U]: Variable Clear [ Name:%AllowTask Pattern Matching : Off ]
[COLOR="Blue"]Power Menu (modes)[/COLOR]
[U]A1[/U]: Run Shell [ Command:svc power reboot Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A2[/U]: Run Shell [ Command:svc power reboot recovery Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A3[/U]: Run Shell [ Command:svc power reboot fastboot Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A4[/U]: Run Shell [ Command:svc power shutdown Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A5[/U]: Run Shell [ Command:svc power stayon Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
SCENES (x3)
Code:
[B]Apps Lock[/B]
-----------------------------------------------
[COLOR="Blue"]Number 0 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:0 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 1 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:1 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 2 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:2 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 3 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:3 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 4 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:4 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 5 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:5 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 6 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:6 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 7 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:7 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 8 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:8 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 9 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:9 Do Maths : Off Append : On ]
[COLOR="Blue"]Back Button[/COLOR]
[U]A1[/U]: Variable Set [ Name:%AllowAppHide To:SECURITY CODE Do Maths : Off Append : Off ]
[U]A2[/U]: Variable Clear [ Name:%AllowApp Pattern Matching : Off ]
[COLOR="Blue"]Close Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Apps Lock ]
[U]A2[/U]: Go Home [ Page:0 ]
[U]A3[/U]: Variable Clear [ Name:%AllowAppHide Pattern Matching : Off ]
[U]A4[/U]: Variable Clear [ Name:%AllowApp Pattern Matching : Off ]
[B]Lost Phone[/B]
-----------------------------------------------
No Actions are performed, just displayed info.
[B]Power Menu[/B]
-----------------------------------------------
[COLOR="Blue"]Shutdown Button[/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Shutdown Timeout (Seconds):0 ]
[U]A2[/U]: Destroy Scene [ Name:Power Menu ]
[COLOR="Blue"]Reboot Button[/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Reboot Timeout (Seconds):0 ]
A2: Destroy Scene [ Name:Power Menu ]
[COLOR="Blue"]Airplane Button[/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Airplane Mode Enabled Timeout (Seconds):0 ]
[U]A2[/U]: Destroy Scene [ Name:Power Menu ]
[COLOR="Blue"]Cancel Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Power Menu ]
SCREENSHOTS
{
"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"
}
*CUSTOM PRESETS* (x1)
Preset 1
· Auto-enable of GPS (remotly)
· Auto-enable of DATA (remotly)
· Auto-playing warning sounds (remotly) [normal and protected method]
· Auto-enable of do not disturb mode (remotly)
* Thanks to 'ziko900'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ABOUT THE PROJECT
· There are available two ways by you can import the project (profiles, tasks, scenes). One is by just importing it using the file on "projects" folder, it will import the whole project at once; the other, by importing it "part-by-part". The 'Files' folder (if included) have to be ALWAYS copied to Tasker directory.
· All scenes are adjusted to work on 1280x720 device (LG K10). You'll have to resize them to fit it on yours. Tested on Android 5.1.1 (Rooted Stock ROM). Other tasks and functionalities have been tested on Android 7.1 too.
· For extra features will be necessary to install these apps/plug-ins too: AutoInput, Easy Voice Recorder (Pro), Secure Settings, Smart LockScreen Protector, Volume Lock Control.
· The Power Menu scene I provide on project resources is just an example to build your own custom power menu dialog to replace the original build-in one. For this you will need some graphic editor (Photoshop, GIMP. . .) to personalize the screen as you want like adding or deleting desired text, icons, features does not oficially exists, etc.
· To be able to prevent (or lock) the appearance of power menu dialog will be required to install 'Smart LockScreen Protector' on the device. That will deny the theft to restart or shutdown the device, but it only works if we have the build-in (original) lockscreen enabled. You can enable it by using 'Lock Device (PIN) [2° lockscreen]" task provided on my project.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
My Tasker PROJECTS & TASKS
--> [PROJECT] Automate all your backup tasks
--> [PROJECT] Android TTS Asistentant (interactive & multilingal)
--> [PROJECT] Call Recorder
--> [PROJECT] High temperature warning device
--> [TASK] Auto-Switch Keyboard(s)
--> [TASK] Talking Clock
Tasker Chat Groups
--> Tasker on WhatsApp
--> Tasker on Telegram
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
If you liked the project. . .
. . . and you decide to invite me to a coffee, I would be very greatful to you ;P
Account: [email protected]
i am rooted. How do I make the flash mode unusable??
What do mean with 'flash mode'? Maybe with Camera photos action?
If yes, just select 'Flash Mode' to "Off", and it won't shut with the light.
NEW VERSION --> Anti-Theft System v1.1
Changelog
- Added two new tasks to allow or deny unwanted apps installation (via adb still vulnerable)
Nice work
CrashOverride93 said:
What do mean with 'flash mode'? Maybe with Camera photos action?
If yes, just select 'Flash Mode' to "Off", and it won't shut with the light.
Click to expand...
Click to collapse
I meant the reset mode. (if phone is off hold down POWER+minus/plus)
This way I can flash a file to the system, but even delete/format it.
dwa4321 said:
I meant the reset mode. (if phone is off hold down POWER+minus/plus)
This way I can flash a file to the system, but even delete/format it.
Click to expand...
Click to collapse
Oh sorry, I understood another thing.
Well, on the one hand its possible to disable + and - volume buttons by remapping them, but I decided not to add it because once you shutdown phone the remapped actions won't take effect. So it'll useless by now, sorry.
Note: But I'm looking for another way (more risky but probable effective).
NEW VERSION --> Anti-Theft System v1.2
Changelog
- Added compatibility to more devices for 'Apps Installation (allow)' and 'Apps Installation (deny)' tasks
- Voice recorder plugin disabled by default, and added Tasker build-in method to 'Record Audio' task
------------------------------------------
NEW VERSION --> Anti-Theft Presets v1.0
Main Features
- Auto-enable of GPS (remotly)
- Auto-enable of DATA (remotly)
- Auto-playing warning sounds (remotly) [normal and protected method]
- Auto-enable of do not disturb mode (remotly)
Now you have available custom profiles & tasks on this thread. Choose the configuration most suitable to you.
All new custom presets will be published in 'Anti-Theft Presets' attached file.
Now you can import projects/tasks with just one step: read the section 'ABOUT THE PROJECT'.
Is there any preset for the anti theft lockscreen?
This is increadible much respect for your work!
In the preset1 there is only a sound etc but not the anti theft lock
wait wait what are we up to... make flashing the new room impossible and at least i will be dead sure my mobile is not being used by unauthorized person.
Sorry for all but I decided to stop working on it for security reasons
Related
I have this setup and its working but not how I want.*
Code:
Save (66)
A1: List Files [ Dir:/data/data/com.android.providers.telephony/app_parts/ Match: Include Hidden Files:eek:n Use Root:eek:n Variable:%Pics ]
A2: Variable Set [ Name:%ContactName To:%SMSRN Do Maths:eek:ff Append:eek:ff ]
A3: For [ Variable:%Pics Items:%Pics() ]
A4: Copy File [ From:%Pics To:DCIM/Contact Pics/%SMSRN_%SMSRT.mp4 Use Root:eek:n ] If [ %Pics ~ *.mp4* & %SMSRT ~ %SMSRT ]
A5: Copy File [ From:%Pics To:DCIM/Contact Pics/%SMSRN_%SMSRT.jpg Use Root:eek:n ] If [ %Pics ~ *.jpg* & %SMSRT ~ %SMSRT ]
A6: Delete File [ File:%Pics Shred Level:0 Use Root:eek:n ]
A7: End For
What I have is not in this but when this runs it then deletes the file. Which in turns makes it so it's removed from message thread. How can I make this only copy new files and retain the old ones?
Sent from my Nexus 6P using Tapatalk
Save (66)
A1: List Files [ Dir:/data/data/com.android.providers.telephony/app_parts/ Match: Include Hidden Filesn Use Rootn Variable:%Pics ]
A2: Variable Set [ Name:%ContactName To:%SMSRN Do Mathsff Appendff ]
A3: Variable Set [ Name:%LastDate To:%FileDate Do Mathsff Appendff ]
A4: For [ Variable:%Pics Items:%Pics() ]
A5: Test File [ Type:Modified Data:%Pics Store Result In:%FileDate Use Rootn ]
A6: Copy File [ From:%Pics ToCIM/Contact Pics/%SMSRN_%SMSRT.mp4 Use Rootn ] If [ %Pics ~ *.mp4* & %FileDate > %LastDate ]
A7: Copy File [ From:%Pics ToCIM/Contact Pics/%SMSRN_%SMSRT.jpg Use Rootn ] If [ %Pics ~ *.jpg* & %FileDate > %LastDate ]
A8: End For
This seems to work I'd anyone else wants to use it
Sent from my Nexus 6P using Tapatalk
Hey so this code is good but not great. Anyone know how to write it better? Its really resource heavy.
Save (66)
A1: List Files [ Dir:/data/data/com.android.providers.telephony/app_parts/ Match: Include Hidden Filesn Use Rootn Variable:%Pics ]
A2: Variable Set [ Name:%ContactName To:%SMSRN Do Mathsff Appendff ]
A3: Variable Set [ Name:%LastDate To:%FileDate Do Mathsff Appendff ]
A4: For [ Variable:%Pics Items:%Pics() ]
A5: Test File [ Type:Modified Data:%Pics Store Result In:%FileDate Use Rootn ]
A6: Copy File [ From:%Pics ToCIM/Contact Pics/%SMSRN_%SMSRT.mp4 Use Rootn ] If [ %Pics ~ *.mp4* & %FileDate > %LastDate ]
A7: Copy File [ From:%Pics ToCIM/Contact Pics/%SMSRN_%SMSRT.jpg Use Rootn ] If [ %Pics ~ *.jpg* & %FileDate > %LastDate ]
A8: [X] Delete File [ File:%Pics Shred Level:0 Use Rootn ]
A9: End For
Sent from my Nexus 6P using Tapatalk
How can i get a wallpaper daily from walloid automatically using tasker???
Code:
Wallppr (154)
A1: List Files [ Dir:backgrnds Match: Include Hidden Files:eek:ff Use Root:eek:ff Variable:%files ]
A2: Variable Set [ Name:%max To:%files(#) Do Maths:eek:ff Append:eek:ff ]
A3: Variable Randomize [ Name:%index Min:1 Max:%max ]
A4: Variable Set [ Name:%Wallppr To:%files(%index) Do Maths:eek:ff Append:eek:ff ]
A5: Variable Split [ Name:%Wallppr Splitter:/ Delete Base:eek:ff ]
A6: Flash [ Text:%Wallppr5/%Wallppr6 Long:eek:n ]
A7: Set Wallpaper [ Image:%Wallppr5/%Wallppr6 Scale:eek:n Crop:eek:ff ]
Just for fun, here are a few others:
NoiseChng3 (373)
A1: If [ %GuestNet ~ True ]
A2: Variable Set [ Name:%RingDir To:rINGS_nOTIFS/work Do Maths:eek:ff Append:eek:ff ]
A3: Else
A4: Variable Set [ Name:%RingDir To:rINGS_nOTIFS/off Do Maths:eek:ff Append:eek:ff ]
A5: End If
A6: List Files [ Dir:%RingDir Match: Include Hidden Files:eek:n Use Root:eek:n Variable:%files ]
A7: Variable Set [ Name:%max To:%files(#) Do Maths:eek:ff Append:eek:ff ]
A8: Variable Randomize [ Name:%index Min:1 Max:%max ]
A9: Variable Set [ Name:%Index To:%index Do Maths:eek:n Append:eek:ff ]
A10: Variable Set [ Name:%Notif To:%files(%index) Do Maths:eek:ff Append:eek:ff ]
A11: Variable Split [ Name:%Notif Splitter:/ Delete Base:eek:ff ]
A12: Variable Split [ Name:%Notif7 Splitter:. Delete Base:eek:ff ]
A13: Flash [ Text:%Notif71 Long:eek:ff ]
A14: If [ %Noise ~ Phone ]
A15: Default Ringtone [ Type:Ringer Sound:%Notif71 ]
A16: Variable Set [ Name:%Ringername To:%Notif71 Do Maths:eek:ff Append:eek:ff ]
A17: Zooper Widget Pro Variable [ Configuration:#TRing# = %Ringername Timeout (Seconds):0 ]
A18: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ]
A19: Perform Task [ Name:RingerQuery1 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:n ]
A20: Else
A21: Default Ringtone [ Type:Notification Sound:%Notif71 ]
A22: Variable Set [ Name:%Notifname To:%Notif71 Do Maths:eek:ff Append:eek:ff ]
A23: Zooper Widget Pro Variable [ Configuration:#TNotif# = %Notifname Timeout (Seconds):0 ]
A24: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ]
A25: Perform Task [ Name:NotifQuery1 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:n ]
A26: End If
NotifQuery1 (375)
A1: If [ %Index eq %Index1 | %Index eq %Index2 | %Index eq %Index3 | %Index eq %Index4 | %Index eq %Index5 | %Notif71 ~ *unknown ringtone* ]
A2: Write File [ File:Notif.txt Text:Notif: %DATE %TIME
Dedupe: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
A3: Flash [ Text:Damn it! I'll try again... Long:eek:n ]
A4: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A5: Else
A6: Write File [ File:Notif.txt Text:Notif: %DATE %TIME: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
RingerQuery1 (376)
A1: If [ %Index eq %Index1 | %Index eq %Index2 | %Index eq %Index3 | %Index eq %Index4 | %Index ~ %Index5 | %Notif71 ~ *unknown ringtone" ]
A2: Write File [ File:Notif.txt Text:Phone: %DATE %TIME
Dedupe: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
A3: Flash [ Text:Damn it! I'll try again... Long:eek:n ]
A4: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A5: Else
A6: Write File [ File:Notif.txt Text:Phone: %DATE %TIME: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
---------- Post added at 01:10 PM ---------- Previous post was at 01:05 PM ----------
Code:
Cal (320)
A1: Perform Task [ Name:NotifLauncher Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A2: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Phone (318)
A1: Variable Set [ Name:%Noise To:Phone Do Maths:eek:ff Append:eek:ff ]
A2: Destroy Scene [ Name:%PopUp Continue Task After Error:eek:n ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Txt (319)
A1: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A2: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A3: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A7: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A8: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Profiles:
Code:
Profile: Calengoo1 (199)
Event: AutoNotification Intercept [ Configuration:Event Behaviour: true
Notification Type: Only Created Notifications
Notification App: CalenGoo
Package Name: com.calengoo.android ]
Enter: Cal (320)
A1: Perform Task [ Name:NotifLauncher Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A2: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Profile: FunNotifTxt (24)
Event: Received Text [ Type:Any Sender:* Content:* ]
Enter: Txt (319)
A1: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A2: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A3: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A7: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A8: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Profile: PhoneCall (153)
State: Call [ Type:Incoming Number:* ]
Enter: Phone (318)
A1: Variable Set [ Name:%Noise To:Phone Do Maths:eek:ff Append:eek:ff ]
A2: Destroy Scene [ Name:%PopUp Continue Task After Error:eek:n ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
nijohnson said:
Code:
Wallppr (154)
A1: List Files [ Dir:backgrnds Match: Include Hidden Files:eek:ff Use Root:eek:ff Variable:%files ]
A2: Variable Set [ Name:%max To:%files(#) Do Maths:eek:ff Append:eek:ff ]
A3: Variable Randomize [ Name:%index Min:1 Max:%max ]
A4: Variable Set [ Name:%Wallppr To:%files(%index) Do Maths:eek:ff Append:eek:ff ]
A5: Variable Split [ Name:%Wallppr Splitter:/ Delete Base:eek:ff ]
A6: Flash [ Text:%Wallppr5/%Wallppr6 Long:eek:n ]
A7: Set Wallpaper [ Image:%Wallppr5/%Wallppr6 Scale:eek:n Crop:eek:ff ]
Just for fun, here are a few others:
NoiseChng3 (373)
A1: If [ %GuestNet ~ True ]
A2: Variable Set [ Name:%RingDir To:rINGS_nOTIFS/work Do Maths:eek:ff Append:eek:ff ]
A3: Else
A4: Variable Set [ Name:%RingDir To:rINGS_nOTIFS/off Do Maths:eek:ff Append:eek:ff ]
A5: End If
A6: List Files [ Dir:%RingDir Match: Include Hidden Files:eek:n Use Root:eek:n Variable:%files ]
A7: Variable Set [ Name:%max To:%files(#) Do Maths:eek:ff Append:eek:ff ]
A8: Variable Randomize [ Name:%index Min:1 Max:%max ]
A9: Variable Set [ Name:%Index To:%index Do Maths:eek:n Append:eek:ff ]
A10: Variable Set [ Name:%Notif To:%files(%index) Do Maths:eek:ff Append:eek:ff ]
A11: Variable Split [ Name:%Notif Splitter:/ Delete Base:eek:ff ]
A12: Variable Split [ Name:%Notif7 Splitter:. Delete Base:eek:ff ]
A13: Flash [ Text:%Notif71 Long:eek:ff ]
A14: If [ %Noise ~ Phone ]
A15: Default Ringtone [ Type:Ringer Sound:%Notif71 ]
A16: Variable Set [ Name:%Ringername To:%Notif71 Do Maths:eek:ff Append:eek:ff ]
A17: Zooper Widget Pro Variable [ Configuration:#TRing# = %Ringername Timeout (Seconds):0 ]
A18: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ]
A19: Perform Task [ Name:RingerQuery1 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:n ]
A20: Else
A21: Default Ringtone [ Type:Notification Sound:%Notif71 ]
A22: Variable Set [ Name:%Notifname To:%Notif71 Do Maths:eek:ff Append:eek:ff ]
A23: Zooper Widget Pro Variable [ Configuration:#TNotif# = %Notifname Timeout (Seconds):0 ]
A24: Wait [ MS:0 Seconds:5 Minutes:0 Hours:0 Days:0 ]
A25: Perform Task [ Name:NotifQuery1 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:n ]
A26: End If
NotifQuery1 (375)
A1: If [ %Index eq %Index1 | %Index eq %Index2 | %Index eq %Index3 | %Index eq %Index4 | %Index eq %Index5 | %Notif71 ~ *unknown ringtone* ]
A2: Write File [ File:Notif.txt Text:Notif: %DATE %TIME
Dedupe: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
A3: Flash [ Text:Damn it! I'll try again... Long:eek:n ]
A4: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A5: Else
A6: Write File [ File:Notif.txt Text:Notif: %DATE %TIME: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
RingerQuery1 (376)
A1: If [ %Index eq %Index1 | %Index eq %Index2 | %Index eq %Index3 | %Index eq %Index4 | %Index ~ %Index5 | %Notif71 ~ *unknown ringtone" ]
A2: Write File [ File:Notif.txt Text:Phone: %DATE %TIME
Dedupe: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
A3: Flash [ Text:Damn it! I'll try again... Long:eek:n ]
A4: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A5: Else
A6: Write File [ File:Notif.txt Text:Phone: %DATE %TIME: %Index
%Index1
%Index2
%Index3
%Index4
%Index5 Append:eek:n Add Newline:eek:n ]
---------- Post added at 01:10 PM ---------- Previous post was at 01:05 PM ----------
Code:
Cal (320)
A1: Perform Task [ Name:NotifLauncher Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A2: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Phone (318)
A1: Variable Set [ Name:%Noise To:Phone Do Maths:eek:ff Append:eek:ff ]
A2: Destroy Scene [ Name:%PopUp Continue Task After Error:eek:n ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Txt (319)
A1: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A2: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A3: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A7: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A8: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Profiles:
Code:
Profile: Calengoo1 (199)
Event: AutoNotification Intercept [ Configuration:Event Behaviour: true
Notification Type: Only Created Notifications
Notification App: CalenGoo
Package Name: com.calengoo.android ]
Enter: Cal (320)
A1: Perform Task [ Name:NotifLauncher Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
A2: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Profile: FunNotifTxt (24)
Event: Received Text [ Type:Any Sender:* Content:* ]
Enter: Txt (319)
A1: Variable Clear [ Name:%Noise Pattern Matching:eek:ff ]
A2: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A3: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A7: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A8: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Profile: PhoneCall (153)
State: Call [ Type:Incoming Number:* ]
Enter: Phone (318)
A1: Variable Set [ Name:%Noise To:Phone Do Maths:eek:ff Append:eek:ff ]
A2: Destroy Scene [ Name:%PopUp Continue Task After Error:eek:n ]
A3: Variable Set [ Name:%Index5 To:%Index4 Do Maths:eek:n Append:eek:ff ]
A4: Variable Set [ Name:%Index4 To:%Index3 Do Maths:eek:n Append:eek:ff ]
A5: Variable Set [ Name:%Index3 To:%Index2 Do Maths:eek:n Append:eek:ff ]
A6: Variable Set [ Name:%Index2 To:%Index1 Do Maths:eek:n Append:eek:ff ]
A7: Variable Set [ Name:%Index1 To:%Index Do Maths:eek:ff Append:eek:ff ]
A8: Flash [ Text:Right! Let's see what we come up with... Long:eek:ff ]
A9: Perform Task [ Name:NoiseChng3 Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:eek:ff ]
Click to expand...
Click to collapse
Thanks.... But can you explain it. I dont know anything about coding.
What should I do to get it working?
LOL! Sorry. So if you use Tasker, this is what it looks like when you export a task or profile to your clipboard as a description. You do this by long-tapping the task, and selecting "export" from the drop down menu.
I'll walk you through the Wallpaper switcher.
First, create a new task. Name it whatever you like
In that task, add an action with the + button. The action you're looking for is in the "List Files" in the "File" catagory
A1: List Files [ Dir:backgrnds Match: Include Hidden Files: Use Root: Variable:%files ]
Action: List files
Directory: (whereever your wall papers are stored. Mine are in a folder called" backgrnds")
Match: (skip)
Include Hidden Files: (skip)
Use Root: (Yes if you have root)
Variable: This is where you're going to save all the file names you list. enter :%files"
Next action: Variable Set - in the Vaiables catagory
A2: Variable Set [ Name:%max To:%files(#) Do Maths: Append: ]
Variable Name:"%max"
To: (This is what you want "%max" to be) %files(#) - which means the number of files
Do Maths: Yes, check this
Append: no. You want a new list each time
Next Action Variable Randomize
A3: Variable Randomize [ Name:%index Min:1 Max:%max ]
Name: (this is where you want to put the random number you're generating)
Min: 1
Max: %max
Next Action Variable Set
A4: Variable Set [ Name:%Wallppr To:%files(%index) Do Maths: Append: off ]
Name: %Wallppr
To: %files(%index) (This is the file name associated with your random number)
Do Maths: no
Append: no.
Next Action Variable Split (This chopps up a variable into manageable bits so the phone can read it)
A5: Variable Split [ Name:%Wallppr Splitter:/ Delete Base: off ]
Name: %Wallppr
Splitter: / (This is the character that tasker looks for. When it finds it, it chopps the variable into two parts - %Wallppr1 is to the left of the splitter and %Wallppr2 is to the right)
Next Action (optional)
A6: Flash [ Text:%Wallppr5/%Wallppr6 ]
Flash is found in the alerts catagory. Its just a way to check to see if everytthing is working. Flash just flashes whatever on the screen. In this case %Wallppr1 and %Wallppr2
Next Action:
A7: Set Wallpaper [ Image:%Wallppr5/%Wallppr6 Scale: Crop: ]
Pretty self expanitory. Found in Display catagory.
nijohnson said:
LOL! Sorry. So if you use Tasker, this is what it looks like when you export a task or profile to your clipboard as a description. You do this by long-tapping the task, and selecting "export" from the drop down menu.
I'll walk you through the Wallpaper switcher.
First, create a new task. Name it whatever you like
In that task, add an action with the + button. The action you're looking for is in the "List Files" in the "File" catagory
A1: List Files [ Dir:backgrnds Match: Include Hidden Files: Use Root: Variable:%files ]
Action: List files
Directory: (whereever your wall papers are stored. Mine are in a folder called" backgrnds")
Match: (skip)
Include Hidden Files: (skip)
Use Root: (Yes if you have root)
Variable: This is where you're going to save all the file names you list. enter :%files"
Next action: Variable Set - in the Vaiables catagory
A2: Variable Set [ Name:%max To:%files(#) Do Maths: Append: ]
Variable Name:"%max"
To: (This is what you want "%max" to be) %files(#) - which means the number of files
Do Maths: Yes, check this
Append: no. You want a new list each time
Next Action Variable Randomize
A3: Variable Randomize [ Name:%index Min:1 Max:%max ]
Name: (this is where you want to put the random number you're generating)
Min: 1
Max: %max
Next Action Variable Set
A4: Variable Set [ Name:%Wallppr To:%files(%index) Do Maths: Append: off ]
Name: %Wallppr
To: %files(%index) (This is the file name associated with your random number)
Do Maths: no
Append: no.
Next Action Variable Split (This chopps up a variable into manageable bits so the phone can read it)
A5: Variable Split [ Name:%Wallppr Splitter:/ Delete Base: off ]
Name: %Wallppr
Splitter: / (This is the character that tasker looks for. When it finds it, it chopps the variable into two parts - %Wallppr1 is to the left of the splitter and %Wallppr2 is to the right)
Next Action (optional)
A6: Flash [ Text:%Wallppr5/%Wallppr6 ]
Flash is found in the alerts catagory. Its just a way to check to see if everytthing is working. Flash just flashes whatever on the screen. In this case %Wallppr1 and %Wallppr2
Next Action:
A7: Set Wallpaper [ Image:%Wallppr5/%Wallppr6 Scale: Crop: ]
Pretty self expanitory. Found in Display catagory.
Click to expand...
Click to collapse
Thanks! I got it.
You're the best
Cool! Have fun!
Hi to all XDA users!
I'm working on a project that makes easier the task of synthesizing plain text into speech on our Android devices. In short, what it does is speech out the copied (selected) text what we want to hear, reacting (enabling tts profile) to a specific event like mobile shaking, and to a specific context as staying on an app that contains the text. Since we select a text until we hear it, will be necessary to follow just 2 previous simple steps. All visual and interactive for the user.
I decided to create it because for me is too hard copy the text I want, leave the app that contains it, search and open the tts app. (some apps allow you to copy and paste the text to proccess), and press the play button. So I wanted to make it easier and faster. I hope you find it useful!
PROFILES (x1)
Code:
[COLOR="Blue"]TTS Synthesizing[/COLOR]
[U]State[/U]: Display State [ Is : On ]
[U]Event[/U]: Shake [ Axis:Left-Right Sensitivity:Medium Duration:Medium ]
[U]Application[/U]: Firefox...
TASKS (x1)
Code:
[COLOR="Blue"]Clipboard Text[/COLOR]
[U]A1[/U]: Flash [ Text:<<Nothing copied to clipboard>> Long : On ] If [ %CLIP ~ %* ]
[U]A2[/U]: Show Scene [ Name:Reading (1) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button : Off Continue Task Immediately : Off ] If [ %CLIP !~ %* ]
SCENES (x4)
Code:
[B]Reading (1)[/B]
-----------------------------------------------
[COLOR="Blue"]Accept Button[/COLOR]
[U]A1[/U]: Variable Set [ Name:%SSpeed To:3 Do Maths : Off Append : Off ]
[U]A2[/U]: Destroy Scene [ Name:Reading (1) ]
[U]A3[/U]: Show Scene [ Name:Reading (2) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Cancel Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Reading (1) ]
[B]Reading (2)[/B]
-----------------------------------------------
[COLOR="Blue"]English Button[/COLOR]
[U]A1[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav Pitch:5 Speed:7 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav Pitch:5 Speed:6 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A3[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav Pitch:5 Speed:5 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A4[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav Pitch:5 Speed:4 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A5[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav Pitch:5 Speed:3 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A6[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav Pitch:5 Speed:2 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A7[/U]: Flash [ Text:Processed file! Long : Off ]
[U]A8[/U]: Wait [ MS:0 Seconds:2 Minutes:0 Hours:0 Days:0 ]
[U]A9[/U]: Destroy Scene [ Name:Reading (2) ]
[U]A10[/U]: Show Scene [ Name:Reading (3) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:24 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Spanish Button[/COLOR]
[U]A1[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav Pitch:5 Speed:7 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav Pitch:5 Speed:6 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A3[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav Pitch:5 Speed:5 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A4[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav Pitch:5 Speed:4 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A5[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav Pitch:5 Speed:3 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A6[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav Pitch:5 Speed:2 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A7[/U]: Flash [ Text:Processed file! Long : Off ]
[U]A8[/U]: Wait [ MS:0 Seconds:2 Minutes:0 Hours:0 Days:0 ]
[U]A9[/U]: Destroy Scene [ Name:Reading (2) ]
[U]A10[/U]: Show Scene [ Name:Reading (3) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:24 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Language Spinner[/COLOR]
[U]A(s)[/U]: Variable Set [ Name:%SSpeed To:1/2/3/4/5/6 Do Maths : Off Append : Off ] = ITEMS
[COLOR="Blue"]Close Button[/COLOR]
[U]A1[/U]: Variable Clear [ Name:%SSpeed Pattern Matching : Off ]
[U]A2[/U]: Destroy Scene [ Name:Reading (2) ]
[B]Reading (3)[/B]
-----------------------------------------------
[COLOR="Blue"]Play Button[/COLOR]
[U]A1[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A3[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A4[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A5[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A6[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A7[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A8[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A9[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A10[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A11[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A12[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 6 ]
[COLOR="Blue"]Back Button[/COLOR]
[U]A1[/U]: Music Back [ Jump:4 ]
[COLOR="Blue"]Stop Button[/COLOR]
[U]A1[/U]: Music Stop [ Clear Dir : Off ]
[COLOR="Blue"]Save Button[/COLOR] (tap)
[U]A1[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A3[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A4[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A5[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A6[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A7[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A8[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A9[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A10[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A11[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A12[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A13[/U]: Flash [ Text:Audio file (WAV) saved! Long : On ]
[COLOR="Blue"]Save Button[/COLOR] (long tap)
[U]A1[/U]: Run Shell [ Command:find /sdcard/Tasker/Files/TTS/audiotemp/*.wav Timeout (Seconds):0 Use Root : Off Store Output In:%FileName Store Errors In: Store Result In: ]
[U]A2[/U]: Variable Section [ Name:%FileName From:36 Length:13 Adapt To Fit : Off Store Result In:%FileName ] If [ %SSpeed = 3 ]
[U]A3[/U]: Variable Section [ Name:%FileName From:36 Length:16 Adapt To Fit : Off Store Result In:%FileName ] If [ %SSpeed != 3 ]
[U]A4[/U]: Show Scene [ Name:Reading (4) Display As:Dialog Horizontal Position:100 Vertical Position:94 Animation:System Show Exit Button : Off Continue Task Immediately : Off ]
[COLOR="Blue"]Close Button[/COLOR]
A1: Run Shell [ Command:cd /sdcard/Tasker/Files/TTS/audiotemp && rm -r * .* Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: Continue Task After Error : On ]
A2: Variable Clear [ Name:%FileName Pattern Matching : Off ]
A3: Variable Clear [ Name:%SSpeed Pattern Matching : Off ]
A4: Destroy Scene [ Name:Reading (3) ]
[B]Reading (4)[/B]
-----------------------------------------------
[COLOR="Blue"]Accept Button[/COLOR]
[U]A1[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A3[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A4[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A5[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A6[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A7[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A8[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A9[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A10[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A11[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A12[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A13[/U]: Destroy Scene [ Name:Reading (4) ]
[U]A14[/U]: Flash [ Text:Audio file (WAV) saved! Long : On ]
[COLOR="Blue"]EditText Element[/COLOR]
[U]A1[/U]: Variable Set [ Name:%FileName To:%new_val Do Maths : Off Append : Off ]
[COLOR="Blue"]Close Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Reading (4) ]
SCREENSHOTS
{
"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"
}
DEMOSTRATION
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ABOUT THE PROJECT
· There are available two ways by you can import the project (profiles, tasks, scenes). One is by just importing it using the file on "projects" folder, it will import the whole project at once; the other, by importing it "part-by-part". The 'Files' folder (if included) have to be ALWAYS copied to Tasker directory.
· All scenes are adjusted to work on 1280x720 device (LG K10). You'll have to resize them to fit it on you
· The 'audiotemp' folder is used to temporally store the .WAV audio file that Tasker generates during the execution of the task.
· Why I decided to generate and work with a .wav file but I could do all of this with the native tts function of tasker (real-time)? = Primary, because I noticed a little delay on the tts service proccess on my phone (I imagine that could appear on other phones), causing a delayed playback. And by the other hand, if we manage to add the feature to be able to pause the playback, will be neccessary to work with a file because the TTS, as I know, can't do that itself.
· You have available more country flags icons than just English and Spanish from this project. Download them from the 'International Flags (icons).rar' attached file on this thread. Will be neccessary Photoshop or whatever program you like to use them into Tasker.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
My Tasker PROJECTS & TASKS
--> [PROJECT] Anti-Theft System
--> [PROJECT] Automate all your backup tasks
--> [PROJECT] Call Recorder
--> [PROJECT] High temperature warning device
--> [TASK] Auto-Switch Keyboard(s)
--> [TASK] Talking Clock
Tasker Chat Groups
--> Tasker on WhatsApp
--> Tasker on Telegram
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
If you liked the project. . .
. . . and you decide to invite me to a coffee, I would be very greatful to you ;P
Account: [email protected]
New: Added more country flags icons!
Cool project. I decided to do my own simplified version. Thanks for the idea (I'm a newb, still learning tasker and this was a good learning experience). I made mine so everytime I copy something (when the profile is active) it reads it out loud automatically i.e. everytime %CLIP changes it reads what is in %CLIP and I use a notification to toggle the profile on and off. It's not nearly as good as yours but it's a great utility to have.
Edit: I have one idea for pausing. There are small floating music players available on the playstore. One is "BuMP". In tasker instead of using "play music" to play the .wav file you could use "open file" and as the "mime type" use "application/*". Then, when the .wav file plays the first time set "BuMP" to play this type of file "always". Media controls will appear in the notifications and so will "BuMP" as a small floating circle everytime your .wav file plays. Not ideal but idk what else to suggest
Thanks for your thanks, I know is not as big as Tasker can do but I wanted to share it to the community
About toggling different functions I'm working on another scene(s) that will be the "interface" of different settings for this project. I mean, I'm trying to do as much as possible be not needed to enter tasker to change some things, like storage location, the tts engine that we will use, etc...
And about your idea for pausing the file, is a good solution. I'll test!
Thanks! And sorry if I make any mistake in english.
I would like to have only one task on the Close Button for deleting files, so how can I perform an action that search for files on a specific folder (audiotemp) and delete all files on there?
NEW VERSION --> Android TTS Assistant v1.1
Changelog
- Solved all missing icons & 2nd language processing issue | sorry
- Deleted '%AudioFileLang' variable (not necessary)
- Re-worked profile, tasks & texts (disable 'Flash Problems' from Preferences > Actions on Tasker)
- New resource directory for the project (sdcard/Tasker/'Files') [DELETE OLDER]
NEW VERSION --> Android TTS Assistant v1.2
Changelog
- New: You can now rename audio files! (long tap on save button)
- Re-worked few tasks
NEW VERSION --> Android TTS Assistant v1.3
Changelog
- New UI
- Minor task and scene settings fixes
You could use the 'Tasker Is Playing Music Plugin' to "sort of" pause the audio without using a media player.
I know that you don't want to rely on third party apps for your TTS project, but what if you just used the 'Tasker Is Playing Music Plugin' and instead of using a media player, you use the 'play music' action but you split the text that you want turned into a TTS audio file into multiple audio files. Let's say you split the text at every full stop ("."). The plugin will let you play one audio file after another automatically and when you want to pause, you could use the 'stop music' action. Then when you press 'play music' tasker just needs to remember what audio file it last played and then it can play that one instead of going all the way back to the start. Edit. Also you won't need to worry about the 4000 charatcher limit because it's unlikely that any one sentence is going to be over 4000 charatchers.
Edit. . Also it's cool because you can make a notification to go to the next sentence and another to go last sentence so it's kind of like a fast forward/backward. Sorry if I explained this really badly.
Now you can import projects/tasks with just one step: read the section 'ABOUT THE PROJECT'.
Love the idea! Which TTS engine/service are you using to generate the audio files?
usb7 said:
Love the idea! Which TTS engine/service are you using to generate the audio files?
Click to expand...
Click to collapse
I use IVONA TTS, but sometimes use Vocalizer.
Hi guys, I'm looking for download a file from a specific folder I have created inside app one. (Dropbox > App_Name > Private > file.x)
I tested the following task to upload files using my own token, and it works perfectly.
https://www.reddit.com/r/tasker/comments/3abjvv/how_to_upload_a_file_to_dropbox_in_the_background/
But, how have it to be modified to allow getting back that uploaded file?
Thanks
The information necessary to do a "get file" rather than the "put file" is contained in the link - different Dropbox Tasks - near the start of that Reddit post. A8 would get adjusted using that information. A2-A7 would be adjusted to define the file you want to retrieve.
"Good judgment comes from experience, and a lot of that comes from bad judgment." - Will Rogers
The case is that following actions (A9, A14...) fails, because the task is adapted to upload files from phone. So I think just editing A2-A8 is not enough.
CrashOverride93 said:
The case is that following actions (A9, A14...) fails, because the task is adapted to upload files from phone. So I think just editing A2-A8 is not enough.
Click to expand...
Click to collapse
Editing the task is enough. I'm just not going to do it for you.
"Good judgment comes from experience, and a lot of that comes from bad judgment." - Will Rogers
Thank you @ktmom.
I have to say that I already tried doing that, but failed. (just to tell you that I didn't ask about that without trying nothing)
Then post the description of the modified task.
Long press the task name then from the 3-dot menu, choose: export > description to clipboard.
If you put a space between semicolons ( : ) and the words "off" or "on", it will prevent the forum from conveying those to emoticons.
"Good judgment comes from experience, and a lot of that comes from bad judgment." - Will Rogers
Ok...
Code:
FMCS - Dropbox (download) (315)
A1: Variable Set [ Name:%accesstoken To:ACCESS_TOKEN Recurse Variables : Off Do Maths : Off Append : Off ]
A2: [X] Test File [ Type:Parent Dir Data:Download/fmc_database.db Store Result In:%dir Use Root : Off ]
A3: [X] Test File [ Type:Name Data:Download/fmc_database.db Store Result In:%name Use Root : Off ]
A4: Variable Set [ Name:%path To:Private/fmc_database.db Recurse Variables : Off Do Maths : Off Append : Off ]
A5: Java Function [ Return:file Class Or Object:File Function:new
{File} (String) Param:%path Param: Param: Param: Param: Param: Param: ]
A6: Java Function [ Return:%exists Class Or Object:file Function:exists
{boolean} () Param: Param: Param: Param: Param: Param: Param: ]
A7: [X] Stop [ With Error : Off Task: ] If [ %exists ~ false ]
A8: Variable Set [ Name:%url To:https://content.dropboxapi.com/2/files/download Recurse Variables : Off Do Maths : Off Append : Off ]
A9: Java Function [ Return:fis Class Or Object:FileInputStream Function:new
{FileInputStream} (File) Param:file Param: Param: Param: Param: Param: Param: ]
A10: Java Function [ Return:httppost Class Or Object:HttpPost Function:new
{HttpPost} (String) Param:%url Param: Param: Param: Param: Param: Param: ]
A11: Java Function [ Return: Class Or Object:httppost Function:setHeader
{} (String, String) Param:Authorization Param:Bearer %accesstoken Param: Param: Param: Param: Param: ]
A12: Variable Set [ Name:%dropboxpath To:Private Recurse Variables : Off Do Maths : Off Append : Off ]
A13: Java Function [ Return: Class Or Object:httppost Function:setHeader
{} (String, String) Param:Dropbox-API-Arg Param:{"path": "/%dropboxpath/%name","mode":"overwrite"} Param: Param: Param: Param: Param: ]
A14: Java Function [ Return:reqentity Class Or Object:InputStreamEntity Function:new
{InputStreamEntity} (InputStream, long) Param:fis Param:-1 Param: Param: Param: Param: Param: ]
A15: Java Function [ Return: Class Or Object:reqentity Function:setContentType
{} (String) Param:application/octet-stream Param: Param: Param: Param: Param: Param: ]
A16: Java Function [ Return: Class Or Object:httppost Function:setEntity
{} (HttpEntity) Param:reqentity Param: Param: Param: Param: Param: Param: ]
A17: Java Function [ Return:httpclient Class Or Object:DefaultHttpClient Function:new
{DefaultHttpClient} () Param: Param: Param: Param: Param: Param: Param: ]
A18: Java Function [ Return:response Class Or Object:httpclient Function:execute
{HttpResponse} (HttpUriRequest) Param:httppost Param: Param: Param: Param: Param: Param: ]
A19: Java Function [ Return:respentity Class Or Object:response Function:getEntity
{HttpEntity} () Param: Param: Param: Param: Param: Param: Param: ]
A20: Java Function [ Return:%response Class Or Object:EntityUtils Function:toString
{String} (HttpEntity) Param:respentity Param: Param: Param: Param: Param: Param: ]
A21: Flash [ Text:%response Long : On ]
No ideas @ktmom, right?
I am trying to convert image saved by the AutoNotifications but it's not working.
Code:
GET APP DETAILS (3)
A1: AutoNotification Query [ Configurationersistency Type: Non-Persistent Only
Package: %evtprm(1)
Get All Fields : true Timeout (Seconds):2 Structure Output:On ]
A2: Variable Split [ Name:%anstatusbaricon Splitter:, Delete Base:Off Regex:Off ]
A3: Text Dialog [ Title:. Text:%anstatusbaricon1 Button 1: Button 2: Button 3: Close After (Seconds):30 Use HTML:Off ]
A4: Read Binary [ File:%anstatusbaricon1 To Var:%b64img ]
A5: Text Dialog [ Title:Base 64 string Text:%b64img Button 1:Ok Button 2: Button 3: Close After (Seconds):30 Use HTML:Off ]