Closed GoogleCodeExporter closed 8 years ago
Hmm, I haven't seen this problem before, and you are the first to report it.
Perhaps there's another application on your phone holding the wake lock?
Original comment by kraigs.a...@gmail.com
on 27 Jun 2011 at 3:50
I've also thought that some app interferes with Alarm Klock, but I can't
imagine which one. I have rather small number of apps installed in addition to
the stock ones. And none of them should touch lockscreen. Anyway nothing
prevents the buildin clock to show it's UI over lockstscreen while ringing. (Of
course I don't launch two alarm applications at the same time).
I've tried to switch on the debug mode in Alarm-Klock, but it didn't help to
find out what happens. What else can I do, to narrow down the problem?
Original comment by av.n...@gmail.com
on 27 Jun 2011 at 4:24
If you have the android development kit, you could try using the logcat feature
of adb.
http://developer.android.com/guide/developing/tools/logcat.html
This allows you to collect the system log. The screen lock events contain the
package name KeyguardManager. You should be able to see which apps are trying
to lock/unlock the screen and if any of them are causing errors.
Sorry there's not an easier way to try to find the problem.
Original comment by kraigs.a...@gmail.com
on 27 Jun 2011 at 4:38
Ok. I made several test runs (setting alarm to 1min in advance) and obtained
corresponding logs with "./adb logcat -c && ./adb logcat *:V > log" command. On
each run the alarm UI was still created behind the lockscreen, but the logs
contains no "KeyguardManager" strings. Moreover, according to the logs activity
"com.angrydoughnuts.android.alarmclock/.ActivityAlarmNotification" was
displayed flawlessly each time...
I rebooted the phone and the problem gone (for some time, I suppose). I
obtained another bunch of logs for this "working" state. The logs looks much
the same as in "non-working" case. The only difference I can find is the launch
time of ActivityAlarmNotification: 800ms (in hidden case) vs 1800ms (in visible
case)...
I looked through your ActivityAlarmNotification.java source file, and found out
that you use KeyguardManager.KeyguardLock directly for temporary disable and
re-enable Keyguard. I'm not an Android (and even Java) developer and I don't
know what is the best practice for these things, but googling showed that there
is also special window flag
http://developer.android.com/reference/android/view/WindowManager.LayoutParams.h
tml#FLAG_SHOW_WHEN_LOCKED , which someone recommended. Can you try to make use
of it? I hope it could be more robust.
Original comment by av.n...@gmail.com
on 27 Jun 2011 at 11:26
Very interesting, thanks for digging into this. The docs claim that this
FLAG_SHOW_WHEN_LOCKED flag was added in SDK version 5, which came after the
initial write of Alarm Klock. It seems to have a lot of advantages over using
the KeyguardManager, including a few security fixes. It also means that the
package would need one fewer install permission (DISABLE_KEYGUARD). I built an
apk that removes all of the KeyguardManager code and the DISABLE_KEYGUARD
permission in favor of this flag
http://kraigsandroid.googlecode.com/files/Alarm%20Klock-lockscreen.apk
The only reason I would be hesitant to release this change is that it would
increase the minimum API version from 4 to 5. There are currently over 10,000
users still using the app on API version 4, so I don't want to drop them unless
there's a really compelling reason. I tried this change in the emulator with
API 4 and it still worked, but I'm not sure why. I'll have to dig through the
android code to see if it really is safe to release with version 4. In the
mean time, could you try this version out to see if it fixes your problem?
Thanks again,
Craig
Original comment by kraigs.a...@gmail.com
on 28 Jun 2011 at 3:38
Thanks for the fast response. Meanwhile the problem returned for the base
version of AlarmKlock (in 12 hours after rebooting). Looks like the result of
Android's memory cleaner - may be the KeyguardLock instance was lost somehow?
Anyway it's mere guesswork...
So, your updated version was to the point. My problem is gone for now. Thanks
again. But only time will show whether this fuzzy issue is fixed completely.
I'll watch over it and report back later.
As for API version, I also think that it's a very good point to support
Android-1.6 (API v4, right?), which is still rather widespread. For example, I
got my LG GT540 Optimus just a year ago with Android-1.6 installed. I suppose,
many people don't risk to flash updated firmware, and don't want to throw away
one-year-old phone. :)
Best regards,
Andrew
Original comment by av.n...@gmail.com
on 28 Jun 2011 at 5:14
Well. Several days passed away and the updated version still works flawlessly,
waking me up comfortably and reliably :). So I think my problem is fixed.
Thanks!
Original comment by av.n...@gmail.com
on 1 Jul 2011 at 8:56
I found an old G1 running 1.6 to try this on as well. It seemed to work even
though the docs say it wasn't supported in that version. I still want to dig
around in the android code to figure out why it works, but it at least seems to
be safe to release. Thanks for testing it out.
Original comment by kraigs.a...@gmail.com
on 2 Jul 2011 at 4:59
[deleted comment]
Just upgraded my phone from Galaxy S II (Sprint) to the Galaxy S 4 and this
issue has started with the pin-style lock screen. Current Android version is
4.2.2
Original comment by deepfrye...@gmail.com
on 8 Jun 2013 at 12:40
Fix released in version 1.8
https://code.google.com/p/kraigsandroid/source/detail?r=6fe8668ef3e1d9908ffed4a6
15c15a59b9654d10
Original comment by kraigs.a...@gmail.com
on 9 Dec 2013 at 3:38
Original issue reported on code.google.com by
av.n...@gmail.com
on 23 Jun 2011 at 10:42