android关闭屏幕代码,Android Studio用代码关闭屏幕

该博客展示了如何在Android Studio中通过代码实现设备的锁屏功能。主要涉及DevicePolicyManager,通过创建DeviceAdminReceiver子类并设置权限,实现点击按钮后立即锁屏。文章包含MainActivity.java、MyAdminReceiver.java、activity_main.xml等相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MainActivity.java

package com.aiden.screenoff;

import android.app.admin.DevicePolicyManager;

import android.content.ComponentName;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private static final int ADMIN_INTENT = 15;

private static final String description = "Rokid Glass Launcher";

private DevicePolicyManager mDevicePolicyManager;

private ComponentName mComponentName;

private String TAG ="fyg ";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

/** **/

mDevicePolicyManager = (DevicePolicyManager)getSystemService(

Context.DEVICE_POLICY_SERVICE);

mComponentName = new ComponentName(this, MyAdminReceiver.class);

Button btnEnableAdmin = (Button) findViewById(R.id.btnEnableAdmin);

Button btnDisableAdmin = (Button) findViewById(R.id.btnDisableAdmin);

Button btnLock = (Button) findViewById(R.id.btnLock);

btnEnableAdmin.setOnClickListener(this);

btnDisableAdmin.setOnClickListener(this);

btnLock.setOnClickListener(this);

if (!mDevicePolicyManager.isAdminActive(mComponentName)) {

Toast.makeText(this,"Please get Device-Admin privilege first.",Toast.LENGTH_SHORT).show();

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setMessage(R.string.DevAdmMsg)

.setTitle("Get Device Admin");

builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

// User clicked OK button

Log.d(TAG, "onClick: OKay");

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);

intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentName);

intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,description);

startActivityForResult(intent, ADMIN_INTENT);

}

});

builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

// User cancelled the dialog

Log.d(TAG, "onClick: Cancel");

}

});

AlertDialog dialog = builder.create();

dialog.show();

}

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btnEnableAdmin:

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);

intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mComponentName);

intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,description);

startActivityForResult(intent, ADMIN_INTENT);

break;

case R.id.btnDisableAdmin:

mDevicePolicyManager.removeActiveAdmin(mComponentName);

Toast.makeText(getApplicationContext(), "Device-Admin registration removed", Toast.LENGTH_SHORT).show();

break;

case R.id.btnLock:

boolean isAdmin = mDevicePolicyManager.isAdminActive(mComponentName);

if (isAdmin) {

mDevicePolicyManager.lockNow();

}else{

Toast.makeText(getApplicationContext(), "Not Registered as admin", Toast.LENGTH_SHORT).show();

}

break;

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == ADMIN_INTENT) {

if (resultCode == RESULT_OK) {

Toast.makeText(getApplicationContext(), "Registered As Device-Admin", Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(getApplicationContext(), "Failed to register as Admin", Toast.LENGTH_SHORT).show();

}

}

}

}

MyAdminReceiver.java如下:

package com.aiden.screenoff;

import android.app.admin.DeviceAdminReceiver;

public class MyAdminReceiver extends DeviceAdminReceiver {

}

Layout文件activity_main.xml内容如下:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:gravity="center"

tools:context="com.aiden.screenoff.MainActivity">

android:id="@+id/btnEnableAdmin"

android:text="Enable Admin"

android:textSize="20dp"

android:layout_width="200dp"

android:layout_height="wrap_content" />

android:id="@+id/btnDisableAdmin"

android:text="Disable Admin"

android:textSize="20dp"

android:layout_width="200dp"

android:layout_height="wrap_content" />

android:id="@+id/btnLock"

android:text="Lock"

android:textSize="20dp"

android:layout_width="200dp"

android:layout_height="wrap_content" />

res/values/trings.xml

Screenoff

Device Admin privilege is required

OK

Cancel

AndroidManifest.xml

package="com.aiden.screenoff">

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme">

android:name="MyAdminReceiver"

android:permission="android.permission.BIND_DEVICE_ADMIN">

android:name="android.app.device_admin"

android:resource="@xml/admin"/>

res/xml/admin.xml内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值