android之一键锁屏、开启管理员权限、取消权限、卸载应用、开启应用

/*
    * 创建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);
}

    }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值