/*
* 创建Myadmin继承DeviceAdminReceiver;
*在res文件下创建xml文件夹,在xml下创建按lock.xml
*在清单文件中, <!--一键锁屏的广播接收者-->
<receiver android:name=".Myadmin"
android:permission="android.permission.BIND_DEVICE_ADMIN"
>
<meta-data android:name="android.app.device_admin"
android:resource="@xml/lock"/>
</receiver>
*
* */
//一键锁屏
public void lockscreen(){
DevicePolicyManager dc;//设备管理
dc= (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
ComponentName mdeviceAdminSample=new ComponentName(this,Myadmin.class);
if(dc.isAdminActive(mdeviceAdminSample)){
dc.lockNow();
//设置屏幕密码
dc.resetPassword("123456",0);
//清除数据---sd卡的数据
dc.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
dc.wipeData(0);//这个是回复出厂设置
}else{
//需要开启管理员权限
return;
}
}
//用代码去开启管理员
public void openAdmin(View view){
Intent intent=new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
//要激活的组件
ComponentName mdeviceAdminSample=new ComponentName(this,Myadmin.class);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,mdeviceAdminSample);
//劝说用户开启管理员权限
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"开启一键锁屏吧,台方便了");
startActivity(intent);
}
//卸载软件
public void unInstall(){
//1.先清除管理员权限
DevicePolicyManager dc;//设备管理
dc= (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
ComponentName mdeviceAdminSample=new ComponentName(this,Myadmin.class);
dc.removeActiveAdmin(mdeviceAdminSample);
//2.普通应用卸载
Intent intent=new Intent();
intent.setAction("android.intent.action.VIEW");
intent.setAction("android.intent.action.DELETE");
intent.addCategory("android.intent.category.DEFAULT");intent.setData(Uri.parse("package:"+getPackageName()));startActivity(intent); }
/*
*开启一个应用程序
*
*
* */
private void startApplication(){
//查询这个应用程序的入口activity,吧他开启起来
PackageManager pm=getPackageManager();
//查询某一个应用具有启动能力的actvity---启动指定包名的应用
Intent intent1= pm.getLaunchIntentForPackage(info.getPackname());
if (intent1!=null){
startActivity(intent1);
}else {
}
}
//查询出来所有手机上具有启动能力的activity
public void deskApp(){
List<String> packnames;
PackageManager pm=getPackageManager();
Intent intent=new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
//查询出来所有手机上具有启动能力的activity
@SuppressLint("WrongConstant") List<ResolveInfo> infos=pm.queryIntentActivities(intent,PackageManager.GET_INTENT_FILTERS);
packnames=new ArrayList<String>();
for (ResolveInfo info:infos){
String packname=info.activityInfo.packageName;
Intent i=pm.getLaunchIntentForPackage(packname);
packnames.add(packname);
}
}