I need to know how much mobile data the device has used since the start of the current month, I know how to do it monitoring the device, but there are two problems with this:
1 - The device I'm working with has very low performance, the network is poor as well, and there are other constant running services in it and a lot of stuff my application needs to do when starting, so it is in it's limit already.
2 - I need to get usage info that exists previously than my application (it's not a public application, it's a business one and we have our own devices and apps).
I know that I can see this data going in the settings of the device and choosing "data usage", but I need to do this programmatically, and it is exactly this I need, like if my app was going to the settings and getting the data usage info.
I've already searched about TrafficStats and NetworkStatsManager. I've also searched all around SO and saw a lot of similar questions, they aren't as much specific as mine though and they are either unresolved, use monitoring in the app itself or uses API 23+. Some of the questions I already searched:
How to check mobile data usage programmatically? - this just gives me the data since the device boot.
How to get Data usage on android by both wifi and Mobile data? - Tells how to split the info by application.
How to get Data usage for last 1 month in android? - It's about last month, not the current month, and it's not currently answered. (Help this fella too if you can, other people also get to his questions when searching about this).
How can I find the data usage on a per-application basis on Android? - it's about monitoring, I can't do it.
How to get the stats of total mobile data used in give time period(eg, last month) by all the application in android - Here CommonsWare's answer tell that it is not possible, but this answer is from five years ago, so I'm hoping things has changed.
How to get the GPRS Mobile data usage for 1 month? - Although it seems to be a good solution, I'm working with API level 19, and the max I can work with is API 22, that is the API of the devices.
The closer I could get was this answer from rajeesh, but the class he uses - NetworkStats - was implemented on API 23, so I can't use it.
I've also found something about reading the system files to get the info in Alexandra Golovatyuk's blog, but it does have some problems, like it does not show how to get the time info, so although I would have the data usage I wouldn't know what period it is from. And although I can root the majority of my devices and install system apps, I would prefer to avoid it and I have some other device models that I can't root. But if there's no other way, this way would also be helpful.