Я написал программу андроида, в которой используется счетчик, который увеличивается при нажатии кнопки регулировки громкости. Также предполагается выключить экран, когда эта кнопка нажата, и подождите 5 секунд бездействия, прежде чем снова включить его. Но ничего не происходит, кроме счетчика, когда я запускаю приложение, т. Е. Экран не отключается.Отключить экран при нажатии кнопки громкости
Вот мой Java класс:
public class MainActivity extends Activity {
private TextView counterTextView;
int count;
PowerManager.WakeLock wakeLock;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counterTextView = (TextView) findViewById(R.id.counterTextView);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && event.getRepeatCount() == 0) {
count++;
counterTextView.setText(" " + count + " ");
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"MyWakelockTag");
wakeLock.acquire();
new Handler().postDelayed(screenOnRunnable(), 5000);
return true;
}
return super.onKeyDown(keyCode, event);
}
private Runnable screenOnRunnable() {
return new Runnable() {
@Override
public void run() {
wakeLock.release();
}
};
}
}
Я также добавил разрешение WAKE_LOCK в манифесте:
<uses-permission android:name="android.permission.WAKE_LOCK" />
Я понятия не имею, что это неправильно ... любая помощь будет принята с благодарностью.
Вы не передаете контекст и не используете при создании доступа к POWER_SERVICE. – Ali786