2011-12-28 1 views
0

Im пытается создать программу для включения подсветки клавиатуры, если экран включен. Im очень новый для android, но я программировал java на 6 месяцев. Я не уверен, как использовать константу Full_Wake_Lock, чтобы включить kb lgiht.Как использовать константу Full_Wake_Lock в android4.0?

ответ

0

Вам необходимо запустить Service.
Тогда вам нужно будет приобрести блокировку следа в onCreate, а затем в onDestroy вы освободите WakeLock. То есть, если вы пытаетесь удержать блокировку следа от фона.

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag"); 
wl.acquire(); 

что, чтобы получить его, а затем выпустить его:

wl.release(); 

И, конечно, вы хотели бы объявить wl в теле класса вне каких-либо методов.

+0

PowerManager.FULL_WAKE_LOCK устарела теперь, что я должен использовать вместо этого? – Behzad

+0

См. Http://developer.android.com/reference/android/os/PowerManager.html#FULL_WAKE_LOCK – Jakar

+0

Спасибо за ответ. Я видел эту ссылку раньше, так как вы видите, что WakeLock устарел в API 17, и мы должны использовать FLAG_KEEP_SCREEN_ON, но он работает неправильно. Когда я использую этот флаг, он не включает устройство и приложение не может запускаться. Это большая проблема, если мы используем устаревший метод или свойство в нашем приложении? – Behzad

0

ДО: wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");

ПОСЛЕ: wakeLock = pm.newWakeLock(PowerManager.ON_AFTER_RELEASE, "DoNotDimScreen");