About Tasker Kids File
Tasker Kids File(Tasker plugin app)
- Introduction
In current Tasker version as I know, you can't embed sound/image/local javascript lib etc. files into Tasker app, except for app icon. This is a Tasker plugin app which helps you to embed any files to your app created using Tasker Factory.
* When Tasker provide this feature, this app will be of no use. :)
* In here, I wll call an app created by exporting Tasker's task/project as Takser kids app
- How does it work?
Takser and its plugin exchange some data each other. If you add a plugin action in your task, then it means some data(Android call it bundle) are stored in Tasker's task (source) file. If you create a Tasker kid "As App", then those plugin data are also included in your kids app.
This plugin zips your files and then converts into Base64(just think it as readable texts) format. Those binary-to-text data are stored in this plugin's bundle(data). When you run this plugin action, it takes those bundles from Tasker or your kids app. Finally this plugin reversely converts into binary and unzips it.
- Where do the files go?
For example, if you insert your *local* click.mp3 file into your kids app, then an end-user of your kids app will have it in **(sdcard)/Tasker/factory/your.apps.package.name/** folder with its same name. So when taskering for Kids app, you have to enter its path like above.
- Two big limitation
1. In Tasker, **1 plugin action** couldn't have more than **50k bytes** bundle (from my trial-n-error results). If you add a file/folder having greater than ~50k, Tasker says "Plugin Data Too Large error".
2. I tried various file sizes and finally got results that max. size a Tasker project can have is about **420k bytes** totally. Sorry :(
Above limitation is from Android OS(Binder Transaction limit) and partially Taskers itself(With 1M file, I could import the project and run it successfully, but on exporting it As App, Tasker failed silently.)
- My resoultion is here.
1. If your kids app is to have only one file/folder having smaller than ~50k, you can add it using "Plugin Action" in Tasker. So try to add file/folder using it if you are doubt. If greater than ~50k, this app will notify of it. As a success, you can have only one Plugin Action. It's simple.
** Why ~50k not 50k? This 50k limit is about a bundle, not original file. Bundle is of zip-n-base64-ed form. so two sizes are not same. If file is a compressed format like mp3, jpg, then bundle size is generally a little greater than original file size.
2. If your files' size is greather than ~50k, you have to run this app on Android launcher, not on Tasker. Then it creates Tasker **project** XML file into your local **(sdcard)/Tasker/projects/package.name/filename.prj.xml**. Import it in Tasker and use created task. You may have many divided plugin actions and tasks in this project. Its for getting over Android and Tasker's limitation.
If you run the task named as "package.filename", then the others will be sequentiall called automatically. This app will internally check files' existence. If not there, it will create files. It in there already, it just passes.
- Sample Task
If you run it on Launcer, it provides an additional sample task. It's ony for example.
Please remember that you don't have to call first task(named as "packname.filename") everytime your kids app runs. File existence checking etc are not necessary except first run of app. Sample task may be helpful.
- (Error: Task doesn't exist)
After importing created Tasker project file, if you run task first, you might see "Task doesn't exist" error. Because imported tasks are not stored in Tasker DB yet, you have to exit and re-enter Tasker.
- Banner Ads
This app has a banner ads. But the end-users of your Tasker kids app are not exposed to ads, they can't see any laucherable activity.
by O####:
Nice job. Looking forward to future updates