Calculate battery life on iOS [duplicate] - objective-c

This question already has an answer here:
Closed 10 years ago.
Possible Duplicate:
iphone: Calculating battery life
I would like to know if its possible to calculate the battery lifetime on iOS. So, for how much time I can use my device until it is 0% of battery percentage.
Thank you all! :)

In short, you can't. At least not with any accuracy.
Or, really, you can't unless the user is going to continue doing exactly what they are doing right now without any changes in network, signal strength, ambient light, etc... As well, receiving push notifications and/or taking phone calls can impact battery life. So can media playback, including -- even -- the encoding format used within the media.

Related

Is there a way to speed up gun.js sync?

I am making game for my kids. I want them to control an abacus input on their iPad and a number-pad input on their iphone. The overall game-boad is on the iPad. The phone is just used to separate the number pad for ergonomics. To facilitate communication between the phone and the ipad - I store and sync with gun.js (server and clients).
It works, but the gun.js sync is a bit slow. Good enough for text messages, but not good enough to game.
Have I run into a common first time gunner pitfall? Is there a config that I missed to increase cycle frequency?
There are 2 important pieces to this solution.
turn off cloudflare caching.
stop making silly mistakes.

How to reprogram a cheap GPS tracker?

I was wondering if I could get a cheap GPS tracking device such as this one on amazon and reprogram it to send the co-ordinates to my own server? I would then like to generate reports from the DB on my server based on dates etc. I would like to build this for a very small-scale courier company I am planning on starting.
I am an amateur/hobbyist programmer and am looking for a few pointers to help me get on the right track. Pun totally intended.
This is a very broad question. But since no one answered so far, I will just throw in my two cents. First of all, you need to know what GPS signal the (cheap) receiver can track. If it can track only single frequency at L1, there's not much you can do. You have to live with large ionosphere fluctuation error signal.
http://www.navipedia.net/index.php/Ionospheric_Delay
If it can only track code signal (not carrier phase signal) you cannot do code smoothing to reduced the noise level of code signal received.
In other words, if a GPS receiver hardware is limited, there's not much room for improvement.

Get low power status in app [duplicate]

This question already has answers here:
Is there any way to detect iOS 9 low power mode programmatically?
(4 answers)
Closed 7 years ago.
I need to get low power mode status, weather low power mode is on or off alert in my app when iPhone change its power mode.
Please help me by getting the solution.
Thank you
There are two ways for that.
You can register for Power State Notifications.
[NSNotificationCenter defaultCenter] addObserver:self selector: #selector(yourMethodName:) name:NSProcessInfoPowerStateDidChangeNotification object: nil];
Or you can determine the current state.
[[NSProcessInfo processInfo] isLowPowerModeEnabled]
The best thing what i think its really great for user experience point of view as per the Apple documentation is: Your app should take additional steps to help the system save energy when Low Power Mode is active. For example, your app could reduce the use of animations, lower frame rates, stop location updates, disable syncs and backups, and so on
I know there is already an answer for this (as per the comment dandan78) with links only no description, so posting bcoz it will be good if we have something here as well.

How GPS working in mobile phones? [duplicate]

This question already has answers here:
How does GPS in a mobile phone work exactly? [closed]
(2 answers)
Closed 8 years ago.
How the mobile phones sending and receiving signals from the satellites?
who is providing these services at free of cost?
You clearly don't know how GPS works. You don't send anything to the satellites, you only receive.
The satellites are operated by the US armed forces, a public service as a side effect of their military use. You don't have to pay anything for that (except for US taxpayers as part of the defense budget, but there's no extra cost for the civilian use).
The satellites each send a very accurate time signal at very regular intervals. A GPS receiver listens to those signals, and based on them can calculate where it is itself to within a few meters (though that accuracy can be reduced if needed by the operators of the satellites, say in times of war).
That's all there is to it.
Of course cellphones also use position data from cellphone towers to calculate their location through triangulation. The position of each tower is known, the phone queries all towers it can talk to, and again can then calculate where it is.
It can even do so based on the location of known WiFi networks.

How does GPS in a mobile phone work exactly? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I assume it doesn't connect to anything (other than the satelite I guess), is this right? Or it does and has some kind of charge?
GPS, the Global Positioning System run by the United States Military, is free for civilian use, though the reality is that we're paying for it with tax dollars.
However, GPS on cell phones is a bit more murky. In general, it won't cost you anything to turn on the GPS in your cell phone, but when you get a location it usually involves the cell phone company in order to get it quickly with little signal, as well as get a location when the satellites aren't visible (since the gov't requires a fix even if the satellites aren't visible for emergency 911 purposes). It uses up some cellular bandwidth. This also means that for phones without a regular GPS receiver, you cannot use the GPS at all if you don't have cell phone service.
For this reason most cell phone companies have the GPS in the phone turned off except for emergency calls and for services they sell you (such as directions).
This particular kind of GPS is called assisted GPS (AGPS), and there are several levels of assistance used.
GPS
A normal GPS receiver listens to a particular frequency for radio signals. Satellites send time coded messages at this frequency. Each satellite has an atomic clock, and sends the current exact time as well.
The GPS receiver figures out which satellites it can hear, and then starts gathering those messages. The messages include time, current satellite positions, and a few other bits of information. The message stream is slow - this is to save power, and also because all the satellites transmit on the same frequency and they're easier to pick out if they go slow. Because of this, and the amount of information needed to operate well, it can take 30-60 seconds to get a location on a regular GPS.
When it knows the position and time code of at least 3 satellites, a GPS receiver can assume it's on the earth's surface and get a good reading. 4 satellites are needed if you aren't on the ground and you want altitude as well.
AGPS
As you saw above, it can take a long time to get a position fix with a normal GPS. There are ways to speed this up, but unless you're carrying an atomic clock with you all the time, or leave the GPS on all the time, then there's always going to be a delay of between 5-60 seconds before you get a location.
In order to save cost, most cell phones share the GPS receiver components with the cellular components, and you can't get a fix and talk at the same time. People don't like that (especially when there's an emergency) so the lowest form of GPS does the following:
Get some information from the cell phone company to feed to the GPS receiver - some of this is gross positioning information based on what cellular towers can 'hear' your phone, so by this time they already phone your location to within a city block or so.
Switch from cellular to GPS receiver for 0.1 second (or some small, practically unoticable period of time) and collect the raw GPS data (no processing on the phone).
Switch back to the phone mode, and send the raw data to the phone company
The phone company processes that data (acts as an offline GPS receiver) and send the location back to your phone.
This saves a lot of money on the phone design, but it has a heavy load on cellular bandwidth, and with a lot of requests coming it requires a lot of fast servers. Still, overall it can be cheaper and faster to implement. They are reluctant, however, to release GPS based features on these phones due to this load - so you won't see turn by turn navigation here.
More recent designs include a full GPS chip. They still get data from the phone company - such as current location based on tower positioning, and current satellite locations - this provides sub 1 second fix times. This information is only needed once, and the GPS can keep track of everything after that with very little power. If the cellular network is unavailable, then they can still get a fix after awhile. If the GPS satellites aren't visible to the receiver, then they can still get a rough fix from the cellular towers.
But to completely answer your question - it's as free as the phone company lets it be, and so far they do not charge for it at all. I doubt that's going to change in the future. In the higher end phones with a full GPS receiver you may even be able to load your own software and access it, such as with mologogo on a motorola iDen phone - the J2ME development kit is free, and the phone is only $40 (prepaid phone with $5 credit). Unlimited internet is about $10 a month, so for $40 to start and $10 a month you can get an internet tracking system. (Prices circa August 2008)
It's only going to get cheaper and more full featured from here on out...
Re: Google maps and such
Yes, Google maps and all other cell phone mapping systems require a data connection of some sort at varying times during usage. When you move far enough in one direction, for instance, it'll request new tiles from its server. Your average phone doesn't have enough storage to hold a map of the US, nor the processor power to render it nicely. iPhone would be able to if you wanted to use the storage space up with maps, but given that most iPhones have a full time unlimited data plan most users would rather use that space for other things.
There's 3 satellites at least that you must be able to receive from of the 24-32 out there, and they each broadcast a time from a synchronized atomic clock. The differences in those times that you receive at any one time tell you how long the broadcast took to reach you, and thus where you are in relation to the satellites. So, it sort of reads from something, but it doesn't connect to that thing. Note that this doesn't tell you your orientation, many GPSes fake that (and speed) by interpolating data points.
If you don't count the cost of the receiver, it's a free service. Apparently there's higher resolution services out there that are restricted to military use. Those are likely a fixed cost for a license to decrypt the signals along with a confidentiality agreement.
Now your device may support GPS tracking, in which case it might communicate, say via GPRS, to a database which will store the location the device has found itself to be at, so that multiple devices may be tracked. That would require some kind of connection.
Maps are either stored on the device or received over a connection. Navigation is computed based on those maps' databases. These likely are a licensed item with a cost associated, though if you use a service like Google Maps they have the license with NAVTEQ and others.