Android(安卓)锁定屏幕 不可解锁
16lz
2021-12-25
Android锁定屏幕
这个玩意只是在MDM上有所应用,通过后台发送指令到Android上,或者是Android程序本身检测满足某一条件的时候,对Android手机进行锁屏操作,当前这种方法,只能通过硬件重启的方式解除锁屏,即音量键+锁屏键
好了,闲言少叙,这个操作主要涉及到下面这个类
LockScreenUtil 主要类
package com.example.demo;import android.content.Context;import android.graphics.PixelFormat;import android.graphics.Point;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import android.widget.Button;public class LockScreenUtil { Point mLpSize; Button mBtnUnlock; ViewGroup mView; final WindowManager mWindowManager; final WindowManager.LayoutParams mLp; public LockScreenUtil(Context mContext){ mView = (ViewGroup) LayoutInflater.from(mContext).inflate(R.layout.lock_screen_view, null); mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); mLp = new WindowManager.LayoutParams(); mBtnUnlock = (Button)mView.findViewById(R.id.btn_unlock); mBtnUnlock.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { show(false); } }); initLp(); } private void initLp(){ mLp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;// TYPE_SYSTEM_ALERT; mLp.format = PixelFormat.RGBA_8888; mLp.flags |= WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; mLp.systemUiVisibility = View.STATUS_BAR_HIDDEN; mLp.width = WindowManager.LayoutParams.MATCH_PARENT; mLp.height = WindowManager.LayoutParams.MATCH_PARENT; } public void show(boolean flag){ if (flag){ mWindowManager.addView(mView, mLp); } else { mWindowManager.removeView(mView); } }}
Activity中涉及到的东西就相对较少了
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mBtnLock = (Button)findViewById(R.id.btn); mLockScreen = new LockScreen(this); mBtnLock.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mLockScreen.show(true); } }); }
lock_screen_view.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btn_unlock" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="lock" />LinearLayout>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/btn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="LOck" > Button>LinearLayout>
最后不要忘记权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
运行之后点击Lock 即可锁定屏幕,当然程序还不完美,还需继续修改完善,有时间继续更
更多相关文章
- Android(安卓)自适应屏幕方向和大小
- Android(安卓)屏幕分辩率相关问题
- Android设置一个按钮右对齐
- android获取屏幕宽高
- android 4.4 设置全屏
- android zxing 扫描二维码 横屏转竖屏
- PowerManager和PowerManager.WakeLock
- Android(安卓)L SurfaceFlinger dump信息全解(1)
- Android如何获取屏幕分辨率的例子