Tricks for saving battery life - windows-phone-7

I want to use accelerometer in my app when the user sleep. When WP7 is locked then accelerometer is turned off so I must set UserIdleDetectionMode to disable and then I disable lock screen but now the phone woudn´t be saving battery so what I must do for saving battery, for doing fake lock screen?

The other apps I've seen which do this recommend that the user plug their device in while using it.
I don't think this is an unreasonable solution as it's safe to assume that most users will charge their phones over night anyway. (Due to current battery technologies and the power consumption of the phones.)

Related

Can we detect ibeacons through android phones without explicitly turning on the bluetooth or location?

How can we detect ibeacons from a android phone without explicitly switching on the bluetooth or location...?
I want to design an app which detects for the beacon even when the bluetooth is off...please suggest the answer
Sorry, this is not possible. Bluetooth must be turned on to detect t beacons as it requires using the Bluetooth radio to do a scan.
With BLUETOOTH_ADMIN permission (required for scanning anyway), it is possible to detect if bluetooth is off, then turn it on long enough to do a scan, then turn it back off again. The user will see the Bluetooth icon when this happens, and the user will be told at install time that the app requires this permission.

Tango power up intermittent. Now nothing

I set my tango down for a couple of months while busy with other things. I charged it for a bit, turned it on and saw the red battery icon. I charged it overnight and saw the green battery symbol. I clicked the power button The splash screen came up, said it was installing updates and screen turned off. That evening I tried to turn it on and it wouldn't do anything. Next morning it turned on - splash screen - white screen, off. Now it doesn't do anything at all. I've tried - volume button and power, both volume buttons...nothing. Has anyone else had this problem? Any ideas? Thanks.
On the below instruction. it only diagnose your device for hardware and BSP level problem. Tango Core and Apps related is not included.
To diagnose your device problem. First we need reset your device.
Hard Reset device
Press your device power key for around 8-10 secs.
sometimes you will see the backlight of screen is off.
Diagnose what is going on on your tango devices
2.1 Check basic bootloader function.
Plug in device with a charging usb cables.
2.1.1 if your device is out of power.
It will show red battery icon. or green icon which you device still enough battery to boot it up.
2.1.2 if your device is not any icon pop up.
Try 1 step again. or
switch different Usb cables and chargers or charging docks.
If it still doesn't work.It is possible a hardware issues now. you may need to contact project-tango-help#google.com
2.1.3 if you do see the battery icon, but without charging icon on it.
That mean something wrong with your charging cable or devices. Switch different charger and cables. if problem still exists. you may need to contact project-tango-help#google.com
2.2 Check the Software side of the devices
if you can see the icon in 2.1.1, that is good.
Normally on Green icon, you can boot up your device.
2.2.1 after the icon is gone, press the power key are 1-3 secs, device will boot up.
you will see the tango icon and the rolling tango icon as part of booting process.
if you get stuck at this two process forever. it means that there is some problem on booting image on android. please go to section 2.3.
if you can see the Android UI without problem. you are fine.keep a eye on your battery. if it show 50% on charging full. and some weird condition. you may need to contact project-tango-help#google.com for more details.
2.3 Recovery your device by android recovery mode.
if you android system can't boot up successfully, Recovery your device is needed. Remember it will wipe out all your data,and cache. so try to backup your data if possible.
2.3.1 If you device can access by ADB, try : adb reboot recovery
or try below steps:
{ make sure device is off,
press the power key with volume Up and Down key at the same time for around 2-3 seconds, till you see Bootloader menus
you will see
{
Continue
Fastboot protocol
Recovery mode
Reboot
Power off
Force Recovery
}
by using volume Up and Down, and power key you can select the item.
select "Recovery mode"
2.3.2: now you are at Tango android recovery mode.
it will show
reboot system now
apply update from ADB
wipe data/factory reset
wipe cache partition
Using Volume down key for moving, and power key for selecting.
The same step as normal Android recovery step.
1. wipe cache partition
2. wipe data/factory reset
then select reboot system now.
Waiting device to boot up.
2.3.3, If your device is still not good. Google didn't provide the tango image for customer fastbooting the device. you had to contact project-tango-help#google.com for next step.

Android Wear long running app - save battery

I'm developing a map application for Android Wear with the possibility to log routes with the GPS. Since logging a route can go on for a while I would like to save as much battery as possible while logging but still, I need to show the current speed and distance to the user. My idea is to use the KeepScreenOn flag to stay in the current app and then lower the brightness of the screen to a minimum when logging.
The problem is I don't know if that's good enough for saving battery or if you guys have a better idea? Is it possible to have ambient mode for an app that is not a watch face?

Is it normal for Apple to reject an app for using UIApplication to disable screen lock?

I just had an app rejected because I have a user changeable setting which allows the user to disable screen lock via
[UIApplication sharedApplication].idleTimerDisabled = YES;
Apple says I used an undocumented API but it IS indeed documented here: https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/index.html#//apple_ref/occ/instp/UIApplication/idleTimerDisabled
My app graphs the barometric pressure and if you want the graph to run longer than a minute or two, it is important to disable screen lock. The default behavior is screen locking as usual, but there's an option in the settings to disable screen lock and this seems to be what Apple took issue with. I've had academic users request this feature, and I have used it in other apps successfully, however this time Apple rejected my app for using it. Is this normal? Is disabling screen lock via UIApplication really now allowed?
I am not sure but I think the issue is that note under the important heading with the documentation you shared;
"You should set this property only if necessary and should be sure to
reset it to NO when the need no longer exists. Most apps should let
the system turn off the screen when the idle timer elapses ..."
You should write into resolution center and confirm this;
We use that capability to prevent idle sleep when we are updating the firmware on a BlueTooth device. Immediately upon completing the update, we restore idle timeout. Apple never said a thing to us about it.
However, in your case, there is no technical reason to disable the idle timer. Your data collection is not going to fail because the system went idle. There is no adverse or unusual customer experience going to be had. That is probably what Apple took exception to.
Three possible paths exist:
1) Gather your data at intervals in the background while the system is idle and update the graph when the app again comes to the front.
2) Add messaging to your app to tell the user that if they want continuous display, they will need to change the idle timeout period in system settings. (With caveats about impact on battery charge duration.)
3) State your case to Apple.
I would go for both 1 & 2

Track Accelerometer under lock screen

Is it possible to track the accelerometer value while under the lock screen?
I managed to write a simple application which counts from 1 up to 100 using a timer which fires an event on which I increment a counter.
But when I use register a handler for the ReadingChanged event of the accelerometer it will not be fired anymore once the screen has been locked. Even if I unlock the screen again I will have to readd my handler.
the msdn documentation tells on the one page:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff941090(v=vs.105).aspx
"Valid reasons to disable idle detection in Windows Phone OS 7.1 applications include ones where core functionality continues while the phone is locked (for instance, an exercise tracking app)"
but the sensor api also tells:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202968(v=vs.105).aspx
"The Sensor APIs cannot be used while the application is running under the lock screen. For more information, see Idle Detection for Windows Phone. The Sensor APIs also cannot be used in background agents. For more information, see Background Agents Overview for Windows Phone"
I hope they will change the api soon, because of that it is not possible to write any good sleep tracking / sport tracking applications ... :(
I was helping a guy with this a couple of days ago. He had an app that tracks GPS and accelerometer data under lock screen.
Turned out the app accelerometer data stopped tracking when under manual or auto lock screen.
There may be an issue here to be looked into.
Under lock screen it is a good idea to minimise power usage... disable all uncessary code, like ui updates. My understanding of one the motivations for idle detection and running under lockscreen being opened up during CTP was in response to a lot of feedback from developers of map/tracking apps that basically need this for their app to be of any use.
I'm not sure of the usage case where you'd want to use the accelerometer under the lock screen.
Apps typically run under the lock screen when you need them to do something when you're not interacting with the device. e.g. playing music or downloading a large file.
If you wanted accelerometer data I'd assume that the device is being held and, therefore, presumably, looked at. Given this, why would you therefore want to run under the lock screen?
That being said, if you had a good reason to do so, you should still be aware that:
when your application runs under a locked screen, it ... must minimize
power usage
(from the Marketplace Certification Requirements.)
In my understanding, reading values from sensors is not minimizing power usage.

Resources