👁 itoo Push Notification Examples for ALL!

SUMMARY

Well, there you are, six different ways to get push notifications running in your app, at relatively no cost.

I am slightly uncomfortable about the timer approach, because this is always calling data back to be tested in the background process, there are polling routines for php, and triggers for mysql, but integrating these would be a headache, let us keep it simple. I also considered a version for going direct to my redis server using webdis (SEE HERE), but the setup is onerous, and again, let us keep it simple. If anyone has a better solution, I am all ears.

Which one is best ?

This will all depend on your circumstances, what you may have already available, and what you consider to be free (free as in beer...). The Google Sheet/Form approach seems best on this front, but if you have your own online server, then this may be better. It will all come down to what works for you.

I ran a test on Firebase, after leaving the app running for @ 12 hours, and checked the data usage. Calculating it out, it seems that your app could make @ 1 million calls before reaching the 360mb free limit per project, so one call per user per day = 1 million users. Should be enough?

Battery usage on device?

Lots of discussion about this. I am yet to see any significant change to my device battery levels as a result of running this service, either with dataChanged or with a timer.

Support

I have assumed that you have sufficient knowledge with regarding to Google/php/mysql/Firebase to get these examples working, most questions about these web technologies will probably be off-topic, any questions therefore should be about the specifics of using these examples.

Updates
The itoo and notificationStyle extensions have now been updated for Android 14 users / API 34.

If any other such issues arise, then please report here or in the respective topics.

1 Like

Thank you for the fantastic work. This has given me an idea to address the issues Android 14 users face when using iToo. We could use an Alarm Manager to periodically check for updates in the Google Sheet throughout the day and if at a certain alarm an update is available, the system would send a notification. This setup allows you to continue using Alarm Manager as usual, simply by adding a new Alarm Manager item.

1 Like

Thanks alot for your great efforts
The app crashes when i use timer only when i changed the target sdk to 34
Tested in android 14 Samsung A04s

Ensure you update your itoo and notification style extensions to the very latest version that work with API 34 and android 14. Remember, that you need to compile, this will not work with companion.

For now, use this update v4.3:

2 Likes

Example 1: App closes immediately. Device running on Android 11 and itoo version 4.3.1

Did you use the latest NotificationStyle extension as well ?

Yes
Screenshot 2024-09-16 at 4.04.24 PM
Screenshot 2024-09-16 at 4.04.16 PM

Did you use a correct url and api key?

To find out what is going on use logcat

Taifun

Yes, @Taifun. I have filled all the information. And also I will soon be debugging.

I don't get a crash, but I also do not get any response. Tested Android 12 and 14.

[EDIT - oops! forgot to build - will test again] :upside_down_face:

The original apks I created and tested are still working OK on Android 13 Pixel 4a, but if I attempt to create a new apk from the aia file, then this does not work (using either the previous extensions or the most recent), this tested on Android 12, 13 and 14.

I'll be running logcat to see what is occuring.

In the meantime test this aia project (build it first, of course), should just show that itoo and notficationStyle is working.

SimpleItooProject2 (1).aia (117.1 KB)

@husnain

All the other examples appear to work on Android 12 and 14 for me, it is just the one with the Firebase dataChanged event causing an issue. It is being investigated.

Have now figured out the problem.

Set your firebase project rules as follows:

{
  // Allow read/write access to all users under any conditions
  // Warning: **NEVER** use this ruleset in production; it allows
  // anyone to overwrite your entire database.

  "rules": {
    ".read": true,
    ".write": true
  }
}
2 Likes

In the end, it was a simple fix, (and I probably should have done this in the first place!) whilst allowing the itoo node to be read/write true and have other nodes with secure rules.

In the Execution Script, simply add itoo to the end of the firebase url.

Edits have been made to the Example 1 post.

1 Like

In these examples, will the permanent service notification be shown?

Yes, because these use the CreateProcess method

Taifun

Thank you for your work so far.
How can I pass a TimeInterval using a variable and how can I pass a Web.URL using a variable ?

You cannot use variables within the itoo blocks. You would need to setup different processes for different timings or urls.