我正在开发一个应用程序,要求在某些条件下屏幕被特定活动锁定 . 具体来说,我有一个在后台运行的服务检查GPS速度,如果速度超过规定的数量,我需要打开一个活动,直到速度低于阈值量,才能退出 . 我对Android开发相对较新,这是一个类的项目,我们还没有讨论唤醒锁或电源管理器,但我很高兴知道这是否是我需要做的 .
我的代码与我认为的这个问题非常无关,因为我想要做的是与我已经拥有的代码分开,但如果需要我可以编辑和提供它 . 谢谢 .
简而言之:不,这是不可能的 .
更长的答案 - 这取决于你的意思是“锁定屏幕” . 当人们听到这个短语时,他们通常会认为这意味着锁定设备,使用户无法做任何其他事情 - 安全屏幕阻止他们在打开设备时走远(直到他们用针脚满足屏幕,模式,面部识别等) .
在您的问题中,您提到了唤醒锁和电源管理器 - 这在安全锁定屏幕中并不重要;如果此活动处于活动状态时,如果您真正想要的是"lock the screen on"或"don't allow the screen to auto-turn off",则这很重要 . 如果这就是你的意图,那么是的,你可以做到 . 从How to get an Android WakeLock to work?开始,您需要在清单中获得权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
并且您将需要类似以下内容的代码来启用唤醒锁定:
private PowerManager.WakeLock wl; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNjfdhotDimScreen"); }//End of onCreate @Override protected void onPause() { super.onPause(); wl.release(); }//End of onPause @Override protected void onResume() { super.onResume(); wl.acquire(); }//End of onResume
以下会在您准备好时禁用它:
w1.release()
1 回答
简而言之:不,这是不可能的 .
更长的答案 - 这取决于你的意思是“锁定屏幕” . 当人们听到这个短语时,他们通常会认为这意味着锁定设备,使用户无法做任何其他事情 - 安全屏幕阻止他们在打开设备时走远(直到他们用针脚满足屏幕,模式,面部识别等) .
在您的问题中,您提到了唤醒锁和电源管理器 - 这在安全锁定屏幕中并不重要;如果此活动处于活动状态时,如果您真正想要的是"lock the screen on"或"don't allow the screen to auto-turn off",则这很重要 . 如果这就是你的意图,那么是的,你可以做到 . 从How to get an Android WakeLock to work?开始,您需要在清单中获得权限:
并且您将需要类似以下内容的代码来启用唤醒锁定:
以下会在您准备好时禁用它: