mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 19:15:58 +00:00
org-owned profile features
This commit is contained in:
@@ -11,8 +11,8 @@ android {
|
|||||||
applicationId = "com.binbin.androidowner"
|
applicationId = "com.binbin.androidowner"
|
||||||
minSdk = 21
|
minSdk = 21
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 12
|
versionCode = 13
|
||||||
versionName = "2.5"
|
versionName = "3.0"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables {
|
vectorDrawables {
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ fun ApplicationManage(){
|
|||||||
value = pkgName,
|
value = pkgName,
|
||||||
onValueChange = { pkgName = it },
|
onValueChange = { pkgName = it },
|
||||||
label = { Text("包名") },
|
label = { Text("包名") },
|
||||||
enabled = isDeviceOwner(myDpm)|| isProfileOwner(myDpm),
|
|
||||||
modifier = Modifier.fillMaxWidth().padding(horizontal = 4.dp),
|
modifier = Modifier.fillMaxWidth().padding(horizontal = 4.dp),
|
||||||
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus()})
|
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus()})
|
||||||
@@ -71,7 +70,6 @@ fun ApplicationManage(){
|
|||||||
value = pkgName,
|
value = pkgName,
|
||||||
onValueChange = { pkgName = it },
|
onValueChange = { pkgName = it },
|
||||||
label = { Text("包名") },
|
label = { Text("包名") },
|
||||||
enabled = isDeviceOwner(myDpm)|| isProfileOwner(myDpm),
|
|
||||||
modifier = Modifier.fillMaxWidth().padding(horizontal = 2.dp,vertical = 2.dp),
|
modifier = Modifier.fillMaxWidth().padding(horizontal = 2.dp,vertical = 2.dp),
|
||||||
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus()})
|
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus()})
|
||||||
@@ -80,6 +78,18 @@ fun ApplicationManage(){
|
|||||||
if(VERSION.SDK_INT>=24&&isProfileOwner(myDpm)&&myDpm.isManagedProfile(myComponent)){
|
if(VERSION.SDK_INT>=24&&isProfileOwner(myDpm)&&myDpm.isManagedProfile(myComponent)){
|
||||||
Text(text = "作用域: 工作资料", style = bodyTextStyle, textAlign = TextAlign.Center,modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp))
|
Text(text = "作用域: 工作资料", style = bodyTextStyle, textAlign = TextAlign.Center,modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Button(
|
||||||
|
onClick = {
|
||||||
|
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
||||||
|
intent.setData(Uri.parse("package:$pkgName"))
|
||||||
|
startActivity(myContext,intent,null)
|
||||||
|
},
|
||||||
|
modifier = Modifier.fillMaxWidth().padding(horizontal = 8.dp)
|
||||||
|
){
|
||||||
|
Text("应用详情")
|
||||||
|
}
|
||||||
|
|
||||||
if(VERSION.SDK_INT>=24&&(isDeviceOwner(myDpm)||isProfileOwner(myDpm))){
|
if(VERSION.SDK_INT>=24&&(isDeviceOwner(myDpm)||isProfileOwner(myDpm))){
|
||||||
AppManageItem(
|
AppManageItem(
|
||||||
R.string.suspend,R.string.place_holder,
|
R.string.suspend,R.string.place_holder,
|
||||||
@@ -441,16 +451,13 @@ fun ApplicationManage(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isDeviceOwner(myDpm)||isProfileOwner(myDpm)){
|
||||||
Column(modifier = sections()) {
|
Column(modifier = sections()) {
|
||||||
Text(text = "许可的输入法", style = typography.titleLarge,color = colorScheme.onPrimaryContainer)
|
Text(text = "许可的输入法", style = typography.titleLarge,color = colorScheme.onPrimaryContainer)
|
||||||
var imeList = mutableListOf<String>()
|
var imeList = mutableListOf<String>()
|
||||||
var imeListText by remember{ mutableStateOf("") }
|
var imeListText by remember{ mutableStateOf("") }
|
||||||
val refreshList = {
|
val refreshList = {
|
||||||
if(isProfileOwner(myDpm) || isDeviceOwner(myDpm)){
|
if(myDpm.getPermittedInputMethods(myComponent)!=null){ imeList = myDpm.getPermittedInputMethods(myComponent)!! }
|
||||||
if(myDpm.getPermittedInputMethods(myComponent)!=null){
|
|
||||||
imeList = myDpm.getPermittedInputMethods(myComponent)!!
|
|
||||||
}
|
|
||||||
}
|
|
||||||
imeListText = ""
|
imeListText = ""
|
||||||
for(eachIme in imeList){ imeListText += "$eachIme \n" }
|
for(eachIme in imeList){ imeListText += "$eachIme \n" }
|
||||||
}
|
}
|
||||||
@@ -460,34 +467,31 @@ fun ApplicationManage(){
|
|||||||
Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){
|
Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){
|
||||||
Button(
|
Button(
|
||||||
onClick = {
|
onClick = {
|
||||||
imeList.plus(pkgName)
|
|
||||||
focusMgr.clearFocus()
|
focusMgr.clearFocus()
|
||||||
|
imeList.plus(pkgName)
|
||||||
Toast.makeText(myContext, if(myDpm.setPermittedInputMethods(myComponent, imeList)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show()
|
Toast.makeText(myContext, if(myDpm.setPermittedInputMethods(myComponent, imeList)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show()
|
||||||
refreshList()
|
refreshList()
|
||||||
},
|
},
|
||||||
modifier = Modifier.fillMaxWidth(0.49F),
|
modifier = Modifier.fillMaxWidth(0.49F)
|
||||||
enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm)
|
|
||||||
) {
|
) {
|
||||||
Text("添加")
|
Text("添加")
|
||||||
}
|
}
|
||||||
Button(
|
Button(
|
||||||
onClick = {
|
onClick = {
|
||||||
imeList.remove(pkgName)
|
|
||||||
focusMgr.clearFocus()
|
focusMgr.clearFocus()
|
||||||
|
imeList.remove(pkgName)
|
||||||
Toast.makeText(myContext, if(myDpm.setPermittedInputMethods(myComponent, imeList)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show()
|
Toast.makeText(myContext, if(myDpm.setPermittedInputMethods(myComponent, imeList)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show()
|
||||||
refreshList()
|
refreshList()
|
||||||
},
|
},
|
||||||
modifier = Modifier.fillMaxWidth(0.96F),
|
modifier = Modifier.fillMaxWidth(0.96F)
|
||||||
enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm)
|
|
||||||
) {
|
) {
|
||||||
Text("移除")
|
Text("移除")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Column(modifier = sections()){
|
if(VERSION.SDK_INT>=28){
|
||||||
Text(text = "清除应用存储", style = typography.titleLarge, color = colorScheme.onPrimaryContainer)
|
|
||||||
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween){
|
|
||||||
Button(
|
Button(
|
||||||
onClick = {
|
onClick = {
|
||||||
val executor = Executors.newCachedThreadPool()
|
val executor = Executors.newCachedThreadPool()
|
||||||
@@ -498,30 +502,15 @@ fun ApplicationManage(){
|
|||||||
Toast.makeText(myContext, toastText, Toast.LENGTH_SHORT).show()
|
Toast.makeText(myContext, toastText, Toast.LENGTH_SHORT).show()
|
||||||
Looper.loop()
|
Looper.loop()
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT>=28){
|
|
||||||
myDpm.clearApplicationUserData(myComponent,pkgName,executor,onClear)
|
myDpm.clearApplicationUserData(myComponent,pkgName,executor,onClear)
|
||||||
}
|
|
||||||
},
|
},
|
||||||
enabled = (isDeviceOwner(myDpm)||isProfileOwner(myDpm))&&VERSION.SDK_INT>=28,
|
enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm),
|
||||||
modifier = Modifier.fillMaxWidth(0.49F)
|
modifier = Modifier.fillMaxWidth().padding(horizontal = 8.dp)
|
||||||
) {
|
) {
|
||||||
Text("清除")
|
Text("清除应用存储")
|
||||||
}
|
|
||||||
Button(
|
|
||||||
onClick = {
|
|
||||||
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
|
||||||
intent.setData(Uri.parse("package:$pkgName"))
|
|
||||||
startActivity(myContext,intent,null)
|
|
||||||
},
|
|
||||||
modifier = Modifier.fillMaxWidth(0.96F)
|
|
||||||
){
|
|
||||||
Text("详情")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(VERSION.SDK_INT<28){
|
|
||||||
Text(text = "清除存储需API28", style = bodyTextStyle)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(VERSION.SDK_INT>=34){
|
if(VERSION.SDK_INT>=34){
|
||||||
Button(
|
Button(
|
||||||
onClick = {
|
onClick = {
|
||||||
|
|||||||
@@ -43,12 +43,12 @@ fun DeviceControl(){
|
|||||||
val bodyTextStyle = if(isWear){typography.bodyMedium}else{typography.bodyLarge}
|
val bodyTextStyle = if(isWear){typography.bodyMedium}else{typography.bodyLarge}
|
||||||
val focusMgr = LocalFocusManager.current
|
val focusMgr = LocalFocusManager.current
|
||||||
Column(modifier = Modifier.verticalScroll(rememberScrollState()).navigationBarsPadding()) {
|
Column(modifier = Modifier.verticalScroll(rememberScrollState()).navigationBarsPadding()) {
|
||||||
if(isDeviceOwner(myDpm)){
|
if(isDeviceOwner(myDpm)||isProfileOwner(myDpm)){
|
||||||
DeviceCtrlItem(R.string.disable_cam,R.string.place_holder, R.drawable.photo_camera_fill0,
|
DeviceCtrlItem(R.string.disable_cam,R.string.place_holder, R.drawable.photo_camera_fill0,
|
||||||
{myDpm.getCameraDisabled(null)},{b -> myDpm.setCameraDisabled(myComponent,b)}
|
{myDpm.getCameraDisabled(null)},{b -> myDpm.setCameraDisabled(myComponent,b)}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(isDeviceOwner(myDpm)){
|
if(isDeviceOwner(myDpm)||isProfileOwner(myDpm)){
|
||||||
DeviceCtrlItem(R.string.disable_scrcap,R.string.aosp_scrrec_also_work,R.drawable.screenshot_fill0,
|
DeviceCtrlItem(R.string.disable_scrcap,R.string.aosp_scrrec_also_work,R.drawable.screenshot_fill0,
|
||||||
{myDpm.getScreenCaptureDisabled(null)},{b -> myDpm.setScreenCaptureDisabled(myComponent,b) }
|
{myDpm.getScreenCaptureDisabled(null)},{b -> myDpm.setScreenCaptureDisabled(myComponent,b) }
|
||||||
)
|
)
|
||||||
@@ -58,7 +58,7 @@ fun DeviceControl(){
|
|||||||
{myDpm.isStatusBarDisabled},{b -> myDpm.setStatusBarDisabled(myComponent,b) }
|
{myDpm.isStatusBarDisabled},{b -> myDpm.setStatusBarDisabled(myComponent,b) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(isDeviceOwner(myDpm)){
|
if(isDeviceOwner(myDpm)||(VERSION.SDK_INT>=30&&isProfileOwner(myDpm)&&myDpm.isOrganizationOwnedDeviceWithManagedProfile)){
|
||||||
if(VERSION.SDK_INT>=30){
|
if(VERSION.SDK_INT>=30){
|
||||||
DeviceCtrlItem(R.string.auto_time,R.string.place_holder,R.drawable.schedule_fill0,
|
DeviceCtrlItem(R.string.auto_time,R.string.place_holder,R.drawable.schedule_fill0,
|
||||||
{myDpm.getAutoTimeEnabled(myComponent)},{b -> myDpm.setAutoTimeEnabled(myComponent,b) }
|
{myDpm.getAutoTimeEnabled(myComponent)},{b -> myDpm.setAutoTimeEnabled(myComponent,b) }
|
||||||
@@ -95,7 +95,7 @@ fun DeviceControl(){
|
|||||||
{myDpm.isCommonCriteriaModeEnabled(myComponent)},{b -> myDpm.setCommonCriteriaModeEnabled(myComponent,b)}
|
{myDpm.isCommonCriteriaModeEnabled(myComponent)},{b -> myDpm.setCommonCriteriaModeEnabled(myComponent,b)}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT>=31&&isDeviceOwner(myDpm)){
|
if(VERSION.SDK_INT>=31&&(isDeviceOwner(myDpm)||(VERSION.SDK_INT>=30&&isProfileOwner(myDpm)&&myDpm.isOrganizationOwnedDeviceWithManagedProfile))){
|
||||||
if(myDpm.canUsbDataSignalingBeDisabled()){
|
if(myDpm.canUsbDataSignalingBeDisabled()){
|
||||||
DeviceCtrlItem(R.string.usb_signal,R.string.place_holder,R.drawable.usb_fill0,
|
DeviceCtrlItem(R.string.usb_signal,R.string.place_holder,R.drawable.usb_fill0,
|
||||||
{myDpm.isUsbDataSignalingEnabled},{b -> myDpm.isUsbDataSignalingEnabled = b }
|
{myDpm.isUsbDataSignalingEnabled},{b -> myDpm.isUsbDataSignalingEnabled = b }
|
||||||
@@ -104,37 +104,27 @@ fun DeviceControl(){
|
|||||||
Text(text = "你的设备不支持关闭USB信号",modifier = Modifier.fillMaxWidth(), style = bodyTextStyle, textAlign = TextAlign.Center)
|
Text(text = "你的设备不支持关闭USB信号",modifier = Modifier.fillMaxWidth(), style = bodyTextStyle, textAlign = TextAlign.Center)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isDeviceOwner(myDpm)){
|
|
||||||
if(VERSION.SDK_INT<23){ Text(text = "禁止蓝牙分享联系人需API23") }
|
|
||||||
if(VERSION.SDK_INT<24){ Text(text = "安全日志API24",modifier=Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = bodyTextStyle) }
|
|
||||||
if(VERSION.SDK_INT<26){ Text(text = "备份服务和网络日志需要API26",modifier=Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = bodyTextStyle) }
|
|
||||||
if(VERSION.SDK_INT<30){ Text(text = "自动设置时区和通用标准模式需要API30",modifier=Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = bodyTextStyle) }
|
|
||||||
if(VERSION.SDK_INT<31){ Text(text = "关闭USB信号需API31",modifier=Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = bodyTextStyle) }
|
|
||||||
if(VERSION.SDK_INT<34){ Text(text = "隐藏状态栏需要API34",modifier=Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = bodyTextStyle) }
|
|
||||||
}
|
|
||||||
if(VERSION.SDK_INT>=28){
|
if(VERSION.SDK_INT>=28){
|
||||||
Column(modifier = sections()) {
|
Column(modifier = sections()) {
|
||||||
Text(text = "锁屏方式", style = typography.titleLarge,color = colorScheme.onPrimaryContainer)
|
Text(text = "锁屏方式", style = typography.titleLarge,color = colorScheme.onPrimaryContainer)
|
||||||
Text(text = "禁用需要无密码",style=bodyTextStyle)
|
Text(text = "禁用需要无密码",style=bodyTextStyle)
|
||||||
Row(
|
Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) {
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
horizontalArrangement = Arrangement.SpaceBetween
|
|
||||||
) {
|
|
||||||
Button(
|
Button(
|
||||||
onClick = { Toast.makeText(myContext, if(myDpm.setKeyguardDisabled(myComponent,true)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() },
|
onClick = { Toast.makeText(myContext, if(myDpm.setKeyguardDisabled(myComponent,true)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() },
|
||||||
enabled = isDeviceOwner(myDpm)|| (isProfileOwner(myDpm)&&myDpm.isAffiliatedUser),
|
enabled = isDeviceOwner(myDpm)|| (isProfileOwner(myDpm)&&myDpm.isAffiliatedUser),
|
||||||
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.49F)}
|
modifier = Modifier.fillMaxWidth(0.49F)
|
||||||
) {
|
) {
|
||||||
Text("禁用")
|
Text("禁用")
|
||||||
}
|
}
|
||||||
Button(
|
Button(
|
||||||
onClick = { Toast.makeText(myContext, if(myDpm.setKeyguardDisabled(myComponent,false)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() },
|
onClick = { Toast.makeText(myContext, if(myDpm.setKeyguardDisabled(myComponent,false)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() },
|
||||||
enabled = isDeviceOwner(myDpm)|| (isProfileOwner(myDpm)&&myDpm.isAffiliatedUser),
|
enabled = isDeviceOwner(myDpm)|| (isProfileOwner(myDpm)&&myDpm.isAffiliatedUser),
|
||||||
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.96F)}
|
modifier = Modifier.fillMaxWidth(0.96F)
|
||||||
) {
|
) {
|
||||||
Text("启用")
|
Text("启用")
|
||||||
}
|
}
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Column(modifier = sections()){
|
Column(modifier = sections()){
|
||||||
@@ -183,7 +173,7 @@ fun DeviceControl(){
|
|||||||
onValueChange = {inputTime = it},
|
onValueChange = {inputTime = it},
|
||||||
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done),
|
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number, imeAction = ImeAction.Done),
|
||||||
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus()}),
|
keyboardActions = KeyboardActions(onDone = {focusMgr.clearFocus()}),
|
||||||
enabled = isDeviceOwner(myDpm),
|
enabled = isDeviceOwner(myDpm)||(VERSION.SDK_INT>=30&&isProfileOwner(myDpm)&&myDpm.isOrganizationOwnedDeviceWithManagedProfile),
|
||||||
modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp)
|
modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp)
|
||||||
)
|
)
|
||||||
if(isWear){
|
if(isWear){
|
||||||
@@ -198,7 +188,7 @@ fun DeviceControl(){
|
|||||||
Button(
|
Button(
|
||||||
onClick = {myDpm.setTime(myComponent,inputTime.toLong())},
|
onClick = {myDpm.setTime(myComponent,inputTime.toLong())},
|
||||||
modifier = Modifier.fillMaxWidth(if(isWear){1F}else{0.35F}),
|
modifier = Modifier.fillMaxWidth(if(isWear){1F}else{0.35F}),
|
||||||
enabled = inputTime!=""&&isDeviceOwner(myDpm)
|
enabled = inputTime!=""&&(isDeviceOwner(myDpm)||(VERSION.SDK_INT>=30&&isProfileOwner(myDpm)&&myDpm.isOrganizationOwnedDeviceWithManagedProfile))
|
||||||
) {
|
) {
|
||||||
Text("应用")
|
Text("应用")
|
||||||
}
|
}
|
||||||
@@ -505,7 +495,8 @@ fun DeviceControl(){
|
|||||||
containerColor = if(confirmed){ colorScheme.primary }else{ colorScheme.error },
|
containerColor = if(confirmed){ colorScheme.primary }else{ colorScheme.error },
|
||||||
contentColor = if(confirmed){ colorScheme.onPrimary }else{ colorScheme.onError }
|
contentColor = if(confirmed){ colorScheme.onPrimary }else{ colorScheme.onError }
|
||||||
),
|
),
|
||||||
enabled = myDpm.isAdminActive(myComponent)
|
enabled = myDpm.isAdminActive(myComponent),
|
||||||
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(text = if(confirmed){"取消"}else{"确定"})
|
Text(text = if(confirmed){"取消"}else{"确定"})
|
||||||
}
|
}
|
||||||
@@ -516,7 +507,8 @@ fun DeviceControl(){
|
|||||||
containerColor = colorScheme.error,
|
containerColor = colorScheme.error,
|
||||||
contentColor = colorScheme.onError
|
contentColor = colorScheme.onError
|
||||||
),
|
),
|
||||||
enabled = confirmed
|
enabled = confirmed,
|
||||||
|
modifier = Modifier.fillMaxWidth(if(VERSION.SDK_INT>=34){0.49F}else{1F})
|
||||||
) {
|
) {
|
||||||
Text("WipeData")
|
Text("WipeData")
|
||||||
}
|
}
|
||||||
@@ -527,7 +519,8 @@ fun DeviceControl(){
|
|||||||
containerColor = colorScheme.error,
|
containerColor = colorScheme.error,
|
||||||
contentColor = colorScheme.onError
|
contentColor = colorScheme.onError
|
||||||
),
|
),
|
||||||
enabled = confirmed
|
enabled = confirmed,
|
||||||
|
modifier = Modifier.fillMaxWidth(0.96F)
|
||||||
) {
|
) {
|
||||||
Text("WipeDevice(API34)")
|
Text("WipeDevice(API34)")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import android.content.ComponentName
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
import android.content.pm.PackageInstaller
|
|
||||||
import android.os.Build.VERSION
|
import android.os.Build.VERSION
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
@@ -225,18 +224,6 @@ fun ManagedProfile() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isProfileOwner(myDpm)&&(VERSION.SDK_INT<24||(VERSION.SDK_INT>=24&&myDpm.isManagedProfile(myComponent)))){
|
|
||||||
Column(modifier = sections(colorScheme.tertiaryContainer)){
|
|
||||||
Text(text = "提示", style = typography.titleLarge)
|
|
||||||
SelectionContainer {
|
|
||||||
Text(
|
|
||||||
text = "安装应用的Action是android.intent.action.INSTALL_PACKAGE,需配合android.intent.action.VIEW使用",
|
|
||||||
style = bodyTextStyle, color = colorScheme.onTertiaryContainer
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Spacer(Modifier.padding(vertical = 30.dp))
|
Spacer(Modifier.padding(vertical = 30.dp))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ fun Network(){
|
|||||||
{myDpm.isPreferentialNetworkServiceEnabled},{b -> myDpm.isPreferentialNetworkServiceEnabled = b}
|
{myDpm.isPreferentialNetworkServiceEnabled},{b -> myDpm.isPreferentialNetworkServiceEnabled = b}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if(VERSION.SDK_INT>=30&&isDeviceOwner(myDpm)){
|
if(VERSION.SDK_INT>=30&&(isDeviceOwner(myDpm)||(isProfileOwner(myDpm)&&myDpm.isOrganizationOwnedDeviceWithManagedProfile))){
|
||||||
DeviceCtrlItem(R.string.wifi_lockdown,R.string.place_holder,R.drawable.wifi_password_fill0,
|
DeviceCtrlItem(R.string.wifi_lockdown,R.string.place_holder,R.drawable.wifi_password_fill0,
|
||||||
{myDpm.hasLockdownAdminConfiguredNetworks(myComponent)},{b -> myDpm.setConfiguredNetworksLockdownState(myComponent,b)}
|
{myDpm.hasLockdownAdminConfiguredNetworks(myComponent)},{b -> myDpm.setConfiguredNetworksLockdownState(myComponent,b)}
|
||||||
)
|
)
|
||||||
@@ -76,7 +76,7 @@ fun Network(){
|
|||||||
RadioButtonItem("WPA-EAP", {selectedWifiSecLevel==DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_EAP}, {selectedWifiSecLevel= DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_EAP})
|
RadioButtonItem("WPA-EAP", {selectedWifiSecLevel==DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_EAP}, {selectedWifiSecLevel= DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_EAP})
|
||||||
RadioButtonItem("WPA3-192bit", {selectedWifiSecLevel==DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_192}, {selectedWifiSecLevel= DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_192})
|
RadioButtonItem("WPA3-192bit", {selectedWifiSecLevel==DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_192}, {selectedWifiSecLevel= DevicePolicyManager.WIFI_SECURITY_ENTERPRISE_192})
|
||||||
Button(
|
Button(
|
||||||
enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm),
|
enabled = isDeviceOwner(myDpm)||(isProfileOwner(myDpm)&&myDpm.isOrganizationOwnedDeviceWithManagedProfile),
|
||||||
onClick = {
|
onClick = {
|
||||||
myDpm.minimumRequiredWifiSecurityLevel=selectedWifiSecLevel
|
myDpm.minimumRequiredWifiSecurityLevel=selectedWifiSecLevel
|
||||||
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
|
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
|
||||||
@@ -90,7 +90,7 @@ fun Network(){
|
|||||||
Text(text = "Wifi安全等级需API33", modifier = Modifier.padding(vertical = 3.dp))
|
Text(text = "Wifi安全等级需API33", modifier = Modifier.padding(vertical = 3.dp))
|
||||||
}
|
}
|
||||||
|
|
||||||
if(VERSION.SDK_INT>=33&&isDeviceOwner(myDpm)){
|
if(VERSION.SDK_INT>=33&&(isDeviceOwner(myDpm)||(isProfileOwner(myDpm)&&myDpm.isOrganizationOwnedDeviceWithManagedProfile))){
|
||||||
Column(modifier = sections()){
|
Column(modifier = sections()){
|
||||||
var policy = myDpm.wifiSsidPolicy
|
var policy = myDpm.wifiSsidPolicy
|
||||||
var selectedPolicyType by remember{mutableIntStateOf(policy?.policyType ?: -1)}
|
var selectedPolicyType by remember{mutableIntStateOf(policy?.policyType ?: -1)}
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ fun Password(){
|
|||||||
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
|
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
|
||||||
calculateCustomFeature()
|
calculateCustomFeature()
|
||||||
},
|
},
|
||||||
enabled = isProfileOwner(myDpm)||isDeviceOwner(myDpm),
|
enabled = isDeviceOwner(myDpm),
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
Text(text = "应用")
|
Text(text = "应用")
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ fun DpmPermissions(navCtrl:NavHostController){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isDeviceOwner(myDpm)&&VERSION.SDK_INT>=24){
|
if((isDeviceOwner(myDpm)||isProfileOwner(myDpm))&&VERSION.SDK_INT>=24){
|
||||||
DeviceOwnerInfo(R.string.owner_lockscr_info,R.string.place_holder,R.string.owner_lockscr_info,focusManager,myContext,
|
DeviceOwnerInfo(R.string.owner_lockscr_info,R.string.place_holder,R.string.owner_lockscr_info,focusManager,myContext,
|
||||||
{myDpm.deviceOwnerLockScreenInfo},{content -> myDpm.setDeviceOwnerLockScreenInfo(myComponent,content)})
|
{myDpm.deviceOwnerLockScreenInfo},{content -> myDpm.setDeviceOwnerLockScreenInfo(myComponent,content)})
|
||||||
DeviceOwnerInfo(R.string.support_msg,R.string.support_msg_desc,R.string.message,focusManager,myContext,
|
DeviceOwnerInfo(R.string.support_msg,R.string.support_msg_desc,R.string.message,focusManager,myContext,
|
||||||
|
|||||||
Reference in New Issue
Block a user