android之一鍵鎖屏、開啟管理員許可權、取消許可權、解除安裝應用、開啟應用
阿新 • • 發佈:2019-01-01
/* * 建立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); } }