diff --git a/students/net1814080903109/TurnoffScreenActivity.java b/students/net1814080903109/TurnoffScreenActivity.java index 5e6a7a652..f1743e740 100644 --- a/students/net1814080903109/TurnoffScreenActivity.java +++ b/students/net1814080903109/TurnoffScreenActivity.java @@ -2,13 +2,45 @@ import androidx.appcompat.app.AppCompatActivity; +import android.app.admin.DevicePolicyManager; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; import android.os.Bundle; +import android.os.SystemClock; +import android.view.View; public class TurnoffScreenActivity extends AppCompatActivity { + ComponentName mAdminName; + DevicePolicyManager mDPM; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.turnoffscreen); + + mAdminName = new ComponentName(this, AdminManageReceiver.class); + mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); + + //如果设备管理器尚未激活,这里会启动一个激活设备管理器的Intent,具体的表现就是第一次打开程序时,手机会弹出激活设备管理器的提示,激活即可。 + if (!mDPM.isAdminActive(mAdminName)) { + showAdminManagement(mAdminName); + } + } + + //执行锁屏 + public void lockScreen(View view){ + if (mDPM.isAdminActive(mAdminName)) { + mDPM.lockNow(); + } + } + + //激活设备管理器 + private void showAdminManagement(ComponentName mAdminName) { + Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); + intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName); + intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "activity device"); + startActivityForResult(intent,1); } } \ No newline at end of file diff --git a/students/net1814080903109/turnoffscreen.xml b/students/net1814080903109/turnoffscreen.xml index 72a1b24d7..3c6e3d1d7 100644 --- a/students/net1814080903109/turnoffscreen.xml +++ b/students/net1814080903109/turnoffscreen.xml @@ -37,19 +37,20 @@ tools:ignore="DuplicateIds,MissingConstraints" />