我打算做后台服务,这将使屏幕闪烁/闪烁,直到用户触摸屏幕。如何让Android设备上的后台服务闪烁/闪烁屏幕?
我不知道如何使屏幕闪烁的方法 - 只有通过产生的活动才能学习到亮度和控制。
想要在屏幕上进行颜色变化闪烁,即黑白或屏幕开/关,使其比屏幕亮度更明显。
我打算做后台服务,这将使屏幕闪烁/闪烁,直到用户触摸屏幕。如何让Android设备上的后台服务闪烁/闪烁屏幕?
我不知道如何使屏幕闪烁的方法 - 只有通过产生的活动才能学习到亮度和控制。
想要在屏幕上进行颜色变化闪烁,即黑白或屏幕开/关,使其比屏幕亮度更明显。
从你的服务,你可以与WakeLock
互动:
采集WakeLock
有:
PowerManager powerMan = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = powerMan.newWakeLock(
PowerManager.SCREEN_DIM_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP, "wakelockTag");
然后打开屏幕上:
wakeLock.acquire();
然后打开它再次关闭:
wakeLock.release();
你可以把它放到一个有睡眠的Thread
或使用Timer
来创建闪存。
例如:
new Thread() {
public void run() {
boolean screenOn = false;
for (int i = 0; i < 5; i++) {
try {
sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (screenOn) {
wakeLock.acquire();
} else {
wakeLock.release();
}
}
}
}.run();
它不会是黑/白,只是开/关。
如果你想要去黑/白,你将不得不也脱离KeyLock
(中查找的Android键盘保护),然后按下一个Activity
这是全黑的,然后更改Activity
白上一个Timer
或在之前的Thread
中。更多的工作。
记住要获得许可在AndroidManifest.xml
:
<uses-permission android:name="android.permission.WAKE_LOCK" />
其他权限将需要解锁KeyGuard
如果你走这条路线。
我用这个屏幕闪烁,在这段代码中,我的relativeLayout(HomeLayout)会闪烁。
Animation animation = new AlphaAnimation(1, 0); // Change alpha
// from fully
// visible to
// invisible
animation.setDuration(500); // duration - half a second
animation.setInterpolator(new LinearInterpolator()); // do not alter
// animation
// rate
animation.setRepeatCount(Animation.INFINITE); // Repeat animation
// infinitely
animation.setRepeatMode(Animation.REVERSE); // Reverse animation at
// the
// end so the layout will
// fade back in
relativeLayout.startAnimation(animation);
添加此代码,当您触摸屏幕或按钮清除动画。
relativeLayout.clearAnimation();
我会尽快测试 - 它是否可以作为覆盖表示一些后台服务可以调用它来显示在前端? – Chameleon
@Chameleon:我现在不会拨打任何后台服务,当屏幕闪烁时,我确实会发出声音。所以请根据您的意愿更改此代码。 :) – Aerrow
意思是说,如果有可能控制从后台服务屏幕闪烁 - 不知道是否有可能:) – Chameleon