Hi Kumaraswamy, you're quite right - extension joeDevClearClipboard is the duplicating culprit ![]()
I'll have to find a way of suppressing the duplicated event trigger (either at the clipboardManager or Itoo process end), or maybe more easily - comparing contiguous clipboard values for equality.
Thanks for the clue.
C.
i want store value mysql every 1 minute, but dont know how to setup itoo, help me, i use deephost mysql extention pro for mysql
Show us what you have tried so far.
I want store data to mysql notice teble every 5 minutes, can it possible use itoo? Like cron job system, i want run my php every 5 minutes
Yes you can
See the answer above
See example 6 here, thank you @TIMAI2
Please try something yourself. Start simple and add more logic after xou got something working.
If you got stuck, show us a screenshot of your relevant blocks
Btw. for mysql there is no need for an extension, you can do it using the web component directly
Taifun
Hi Taifun and Kumaraswamy
Before I embark on this idea for an app (which will definitely not be available for Play Store!), could I just check a few things?
The basic premise of the app:
- runs in the background (foreground ?)
- gets device location
- receives sms and sends sms (from trusted phone numbers)
How it would work:
- a trusted device / phone number (no app required on the trusted phone/s, although there could be) would send an sms with a specific command (e.g. "fmp_location") to the lost phone running the app.
- the lost phone receives the sms
- the lost phone reads the message, checks from a trusted number.
- if message is "fmp_location" then the lost phone gets its location using GPS (only)
- the lost phone sends an sms with its location to the trusted sender
- lost phone is no longer lost !!
Is this possible ?
Thanks
To be able to do this in the background you need background location permission. My locationservice extension can do it App Inventor Extensions: Location Service | Pura Vida Apps
In the background the texting component can only display a notification. My sms receiver extension can do background processing using itoo App Inventor Extensions: SMS Receiver | Pura Vida Apps
Yes
Taifun
OK, many thanks, will have a look at this and see how I get on.
I have already found an app that offers the same and more functionality on FDroid, but thought it would be good to create an Appinventor version.
i want use [FREE] SMS Reader Extension - Extensions - Kodular Community this extension, ans want store my sms in mysql server, i want make getway type system , can you help me and give me demo aia , when itoo run its call sms reader, and store all sms mysql server,
That extension works only in the foreground
I can offer my sms receiver extension App Inventor Extensions: SMS Receiver | Pura Vida Apps to receive sms in the background and start some processing using itoo
Note: this type of app will not be approved by Google Play
Taifun
I know this type app not published play strore, but i want make app payment getway type,
Can you help me for making payment getway app
Yes I can. For details I just sent a PM.
Taifun
app crash on sdk >= 35
Crash report
Exception android.app.RemoteServiceException$ForegroundServiceDidNotStopInTimeException: A foreground service of type dataSync did not stop within its timeout: ComponentInfo{xyz.xyz.xyz/xyz.kumaraswamy.itoo.ItooService}at android.app.ActivityThread.generateForegroundServiceDidNotStopInTimeException (ActivityThread.java:2420)at android.app.ActivityThread.throwRemoteServiceException (ActivityThread.java:2382)at android.app.ActivityThread.-$$Nest$mthrowRemoteServiceException (Unknown Source)at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2707)at android.os.Handler.dispatchMessage (Handler.java:107)at android.os.Looper.loopOnce (Looper.java:311)at android.os.Looper.loop (Looper.java:408)at android.app.ActivityThread.main (ActivityThread.java:9119)at java.lang.reflect.Method.invokeat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:627)at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:970)
another crash report
Exception java.lang.RuntimeException:at android.app.ActivityThread.handleServiceArgs (ActivityThread.java:5438)at android.app.ActivityThread.-$$Nest$mhandleServiceArgs (Unknown Source)at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2619)at android.os.Handler.dispatchMessage (Handler.java:107)at android.os.Looper.loopOnce (Looper.java:311)at android.os.Looper.loop (Looper.java:408)at android.app.ActivityThread.main (ActivityThread.java:9119)at java.lang.reflect.Method.invokeat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:627)at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:970)Caused by android.app.ForegroundServiceStartNotAllowedException: Time limit already exhausted for foreground service type dataSyncat android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:54)at android.app.ForegroundServiceStartNotAllowedException$1.createFromParcel (ForegroundServiceStartNotAllowedException.java:50)at android.os.Parcel.readParcelableInternal (Parcel.java:5084)at android.os.Parcel.readParcelable (Parcel.java:5066)at android.os.Parcel.createExceptionOrNull (Parcel.java:3246)at android.os.Parcel.createException (Parcel.java:3235)at android.os.Parcel.readException (Parcel.java:3218)at android.os.Parcel.readException (Parcel.java:3160)at android.app.IActivityManager$Stub$Proxy.setServiceForeground (IActivityManager.java:7691)at android.app.Service.startForeground (Service.java:863)at xyz.kumaraswamy.itoo.ItooService.foregroundInit (ItooService.java:202)at xyz.kumaraswamy.itoo.ItooService.onStartCommand (ItooService.java:109)at android.app.ActivityThread.handleServiceArgs (ActivityThread.java:5420)
whats the solution please help
The extension will be updated in a few days of time.
You can't keep a foreground service running all the time anymore
See also this ChatGPT answer
On modern Android (especially Android 13β14+), most foreground service types have restrictions. The system expects them to be short-lived unless the type represents something the user clearly sees or controls.
Foreground service types with the strictest time limits
These are expected to finish quickly and may trigger the βdid not stop within its timeoutβ error:
dataSyncβ uploading/downloading datashortServiceβ explicitly limited to a very short duration (~3 minutes)mediaProcessingβ background media conversionsremoteMessagingβ push/communication services
These are the ones most likely to hit the timeout.
Foreground service types that are allowed to run longer
These usually do not have the same short timeout because the user expects them to run continuously:
mediaPlaybackβ music, podcasts, video playbacklocationβ navigation or continuous GPS trackingphoneCallβ VoIP or call servicesconnectedDeviceβ communication with external hardware (Bluetooth devices, wearables, etc.)cameraβ active camera usagemicrophoneβ recording audiohealthβ fitness trackingmediaProjectionβ screen recording / screen sharing
These can run as long as the user-visible activity continues.
Important rule (Android 14+)
Even the βlong-runningβ types must meet user-visible expectations:
mediaPlaybackβ actual audio/video playinglocationβ active navigation or trackingphoneCallβ active call
If the system detects misuse, it may still stop the service.
Recommended approach for dataSync
Google now strongly recommends using:
WorkManagerJobScheduler
instead of a foreground service for most background data syncing.
You might want to tell us more about your use case
Taifun
Itoo Sky 4.5.0
-
Introducing the Itoo Manifest Generator (theitoo.github.io) for customising foreground services.
-
1.1. Check all the foreground service types relevant to background operations
-
1.2. Check relevant permissions for your use case
-
1.3. Review and download
-
1.4. Import the customised Itoo extension
-
1.5. Check the used foreground service types in the designer
-
-
Deprecated and removed the old RegisterEvent block for statically typed events.
Define a procedure with name ComponentName_EventName with n required arguments.
-
Deprecated and removed JobService APIs CreateTask, CancelTask and IsRunning blocks. Itoo is now a foreground first extension. Use CreateProcess instead.
-
Deprecated and removed, unpopular CaptureProperties and ReleaseProperties blocks.
-
Deprecated and removed old communication blocks Broadcast, RegisterBroadcast, UnregisterBroadcast, and BroadcastEvent blocks. Use the new auto communicators added in version 4.4.0.
Download
Please head over to theitoo.github.io to download a customised and Playstore compliant version of the Itoo extension.
Generic version: xyz.kumaraswamy.itoo.aix (89.8 KB)
Templates
| Usecase | Foreground Service Type | Download |
|---|---|---|
| Hobby and regular testing | Connected device | Itoo Manifest |
| Background audio players | MediaPlayback | Itoo Manifest |
| Background location access | Location (accurate+rough) | Itoo Manifest |
| Background bluetooth communication | Connected device + BL permissions | Itoo Manifest |
Open Source
The Itoo Manifest Generator is open-sourced under the GNU GPL v3 license:
Acknowledgement
I want to thank Vitor Mori for sponsoring this version of the extension.
I apologise that I was unable to provide an update earlier. I've gotten better now.
Donate
Please consider donating if this extension has been of any use to you.
Thank you
Kumaraswamy B G
You are using Kodular, ask on the iToO topic on the Kodular community.





