作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个内部注册加速度计的服务。当识别出特定的摇动模式时,服务会使用此代码启动一项 Activity 。
Intent launchIntent = new Intent("my.package.MAIN_ACTIVITY");
LaunchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(LaunchIntent);
在 onCreate
中,我使用此代码 fragment 解锁手机并打开屏幕:
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
如果用户有时不与 Activity 交互,我将使用此代码关闭显示:
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
如果在显示 Activity 时显示屏关闭并且手机锁定,并且我重复摇动模式,则会调用 onStart
方法。我尝试输入与上面相同的开机和解锁代码,但它不起作用(显示未打开)。
可能是什么问题?
最佳答案
我设法解决了这个问题。开始我的 Activity 时,我使用 WakeLock
:
PowerManager pm = ((PowerManager) getSystemService(POWER_SERVICE));
screenLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
screenLock.acquire();
此代码将防止屏幕关闭。但在那之后我启动了一个延迟几秒钟的计时器,它禁用了 WakeLock
:
if(screenLock.isHeld()) {
screenLock.release();
}
关于android - FLAG_TURN_SCREEN_ON 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080506/
我有一个内部注册加速度计的服务。当识别出特定的摇动模式时,服务会使用此代码启动一项 Activity 。 Intent launchIntent = new Intent("my.package.MA
我从 BroadcastReceiver 开始一个 Activity ,它由警报(RTC_WAKEUP 类型)触发。在该 Activity 的 onCreate 中,我添加了这些标志 getWindo
我的应用获得唤醒锁,但无法从 Activity 唤醒设备 这是我的代码: public void onCreate(){ super.onCreate(); //acquire wak
我是一名优秀的程序员,十分优秀!