手机一键锁屏(附源码及apk安装包)
手机锁屏在Google里面也有对应的API实现,本着学习的态度,把手机锁屏的方式写出来,备自己以后查询,有问题的话可以交流。android开发路漫漫,学海无涯苦作舟。
1.首先新建一个AdminReceiver.java。
AdminReceiver.java
public class AdminReceiver extends DeviceAdminReceiver {
}
代码不必复写任何方法
2.在Manifest中配置receiver接收者
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.siat.suoping"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".AdminReceiver"
android:description="@string/sample_device_admin_description"
android:label="超级设备管理器"
android:permission="android.permission.BIND_DEVICE_ADMIN" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
</application>
</manifest>
标签receiver中的内容是需要我们添加上去的
3.在res文件夹下新建xml文件夹,在xml文件下创建device_admin_sample.xml文件
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
</device-admin>
4.需要在valus中的strings.xml中添加一句sample_device_admin_description配置,因为前面receiver标签用到
?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">一键锁屏</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="sample_device_admin_description">启动</string>
</resources>
5.MainActivity.java
public class MainActivity extends Activity {
private DevicePolicyManager mDPM;
private ComponentName mDeviceAdminSample;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);// 获取设备策略服务
mDeviceAdminSample = new ComponentName(this, AdminReceiver.class);// 设备管理组件
lockScreen();
}
//开启任务管理器权限
public void activeAdmin() {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
mDeviceAdminSample);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"超级设备管理器");
startActivity(intent);
}
public void lockScreen() {
if (mDPM.isAdminActive(mDeviceAdminSample)) {// 判断设备管理器是否已经激活
mDPM.lockNow();// 立即锁屏
finish();//把Activity页面销毁掉
} else {
activeAdmin();
Toast.makeText(this, "必须先激活设备管理器!", Toast.LENGTH_SHORT).show();
finish();
}
}
}
源码已经上传,仅供参考
http://download.youkuaiyun.com/detail/zhaokai621/9526332