setMinimumRequiredWifiSecurityLevel

This commit is contained in:
BinTianqi
2024-02-03 15:25:27 +08:00
parent 5e433fff0c
commit b412f69ba1
6 changed files with 86 additions and 47 deletions

View File

@@ -19,6 +19,7 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.AndroidOwner" android:theme="@style/Theme.AndroidOwner"
android:enableOnBackInvokedCallback="true" android:enableOnBackInvokedCallback="true"
android:allowNativeHeapPointerTagging="true"
tools:targetApi="34"> tools:targetApi="34">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"

View File

@@ -112,7 +112,7 @@ fun ApplicationManage(){
myDpm.setPermittedInputMethods(myComponent, imeList) myDpm.setPermittedInputMethods(myComponent, imeList)
refreshList() refreshList()
}, },
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.48F)}, modifier = Modifier.fillMaxWidth(0.48F),
enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm) enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm)
) { ) {
Text("加入列表") Text("加入列表")
@@ -125,7 +125,7 @@ fun ApplicationManage(){
myDpm.setPermittedInputMethods(myComponent,imeList) myDpm.setPermittedInputMethods(myComponent,imeList)
refreshList() refreshList()
}, },
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.92F)}, modifier = Modifier.fillMaxWidth(0.92F),
enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm) enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm)
) { ) {
Text("从列表中移除") Text("从列表中移除")

View File

@@ -1,9 +1,7 @@
package com.binbin.androidowner package com.binbin.androidowner
import android.app.admin.DevicePolicyManager import android.app.admin.DevicePolicyManager
import android.app.admin.DevicePolicyManager.MTE_DISABLED import android.app.admin.DevicePolicyManager.*
import android.app.admin.DevicePolicyManager.MTE_ENABLED
import android.app.admin.DevicePolicyManager.MTE_NOT_CONTROLLED_BY_POLICY
import android.content.ComponentName import android.content.ComponentName
import android.content.Context import android.content.Context
import android.os.Build.VERSION import android.os.Build.VERSION
@@ -151,6 +149,29 @@ fun DeviceControl(){
} }
} }
if(VERSION.SDK_INT>=33){
Column(modifier = sections()){
var selectedWifiSecLevel by remember{mutableIntStateOf(myDpm.minimumRequiredWifiSecurityLevel)}
Text(text = "WiFi安全等级", style = typography.titleLarge, color = colorScheme.onPrimaryContainer)
RadioButtonItem("开放", {selectedWifiSecLevel==WIFI_SECURITY_OPEN}, {selectedWifiSecLevel= WIFI_SECURITY_OPEN})
RadioButtonItem("WEP, WPA(2)-PSK", {selectedWifiSecLevel==WIFI_SECURITY_PERSONAL}, {selectedWifiSecLevel= WIFI_SECURITY_PERSONAL})
RadioButtonItem("WPA-EAP", {selectedWifiSecLevel==WIFI_SECURITY_ENTERPRISE_EAP}, {selectedWifiSecLevel= WIFI_SECURITY_ENTERPRISE_EAP})
RadioButtonItem("WPA3-192bit", {selectedWifiSecLevel==WIFI_SECURITY_ENTERPRISE_192}, {selectedWifiSecLevel= WIFI_SECURITY_ENTERPRISE_192})
Button(
enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm),
onClick = {
myDpm.minimumRequiredWifiSecurityLevel=selectedWifiSecLevel
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
},
modifier = Modifier.fillMaxWidth()
){
Text("应用")
}
}
}else{
Text(text = "Wifi安全等级需API33", modifier = Modifier.padding(vertical = 3.dp))
}
if(isDeviceOwner(myDpm)){ if(isDeviceOwner(myDpm)){
SysUpdatePolicy(myDpm,myComponent,myContext) SysUpdatePolicy(myDpm,myComponent,myContext)
} }

View File

@@ -104,6 +104,7 @@ fun Password(){
) { ) {
Text("清除") Text("清除")
} }
if(isWear){Spacer(Modifier.padding(horizontal = 2.dp))}
Button( Button(
onClick = { onClick = {
if(myDpm.setResetPasswordToken(myComponent, myByteArray)){ Toast.makeText(myContext, "设置成功", Toast.LENGTH_SHORT).show() if(myDpm.setResetPasswordToken(myComponent, myByteArray)){ Toast.makeText(myContext, "设置成功", Toast.LENGTH_SHORT).show()
@@ -114,6 +115,7 @@ fun Password(){
) { ) {
Text("设置") Text("设置")
} }
if(isWear){Spacer(Modifier.padding(horizontal = 2.dp))}
Button( Button(
onClick = { onClick = {
if(!myDpm.isResetPasswordTokenActive(myComponent)){ if(!myDpm.isResetPasswordTokenActive(myComponent)){
@@ -336,7 +338,7 @@ fun Password(){
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
calculateCustomFeature() calculateCustomFeature()
}, },
enabled = myDpm.isAdminActive(myComponent), enabled = isProfileOwner(myDpm)||isDeviceOwner(myDpm),
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) { ) {
Text(text = "应用") Text(text = "应用")

View File

@@ -7,12 +7,8 @@ import android.content.Intent
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
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.horizontalScroll
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
@@ -20,15 +16,11 @@ import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme.colorScheme
import androidx.compose.material3.MaterialTheme.typography import androidx.compose.material3.MaterialTheme.typography
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextField import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable import androidx.compose.runtime.*
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager import androidx.compose.ui.focus.FocusManager
@@ -52,7 +44,7 @@ fun DpmPermissions(navCtrl:NavHostController){
val focusManager = LocalFocusManager.current val focusManager = LocalFocusManager.current
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE) val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
val isWear = sharedPref.getBoolean("isWear",false) val isWear = sharedPref.getBoolean("isWear",false)
val titleColor = MaterialTheme.colorScheme.onPrimaryContainer val titleColor = colorScheme.onPrimaryContainer
val bodyTextStyle = if(isWear){typography.bodyMedium}else{typography.bodyLarge} val bodyTextStyle = if(isWear){typography.bodyMedium}else{typography.bodyLarge}
Column( Column(
modifier = Modifier.verticalScroll(rememberScrollState()), modifier = Modifier.verticalScroll(rememberScrollState()),
@@ -94,12 +86,12 @@ fun DpmPermissions(navCtrl:NavHostController){
} }
if(!isda){ if(!isda){
Column( Column(
modifier = sections(MaterialTheme.colorScheme.tertiaryContainer.copy(alpha = 0.8F)), modifier = sections(colorScheme.tertiaryContainer.copy(alpha = 0.8F)),
horizontalAlignment = Alignment.Start horizontalAlignment = Alignment.Start
) { ) {
SelectionContainer { SelectionContainer {
Text("adb shell dpm set-active-admin com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver", Text("adb shell dpm set-active-admin com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver",
color = MaterialTheme.colorScheme.onTertiaryContainer, style = bodyTextStyle) color = colorScheme.onTertiaryContainer, style = bodyTextStyle)
} }
Text(text = "或者进入设置(原生安卓) -> 安全 -> 更多安全设置 -> 设备管理应用 -> Android Owner", style = bodyTextStyle) Text(text = "或者进入设置(原生安卓) -> 安全 -> 更多安全设置 -> 设备管理应用 -> Android Owner", style = bodyTextStyle)
} }
@@ -130,13 +122,13 @@ fun DpmPermissions(navCtrl:NavHostController){
} }
if(!isProfileOwner(myDpm)){ if(!isProfileOwner(myDpm)){
Column( Column(
modifier = sections(MaterialTheme.colorScheme.tertiaryContainer.copy(alpha = 0.8F)), modifier = sections(colorScheme.tertiaryContainer.copy(alpha = 0.8F)),
horizontalAlignment = Alignment.Start horizontalAlignment = Alignment.Start
) { ) {
if(!isDeviceOwner(myDpm)){ if(!isDeviceOwner(myDpm)){
SelectionContainer { SelectionContainer {
Text("adb shell dpm set-profile-owner com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver", Text("adb shell dpm set-profile-owner com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver",
color = MaterialTheme.colorScheme.onTertiaryContainer, style = bodyTextStyle) color = colorScheme.onTertiaryContainer, style = bodyTextStyle)
} }
Text(text = "Device owner和Profile owner不能同时存在强烈建议激活Device owner", style = bodyTextStyle) Text(text = "Device owner和Profile owner不能同时存在强烈建议激活Device owner", style = bodyTextStyle)
} }
@@ -171,12 +163,12 @@ fun DpmPermissions(navCtrl:NavHostController){
} }
if(!isDeviceOwner(myDpm)&&!isProfileOwner(myDpm)){ if(!isDeviceOwner(myDpm)&&!isProfileOwner(myDpm)){
Column( Column(
modifier = sections(MaterialTheme.colorScheme.tertiaryContainer.copy(alpha = 0.8F)), modifier = sections(colorScheme.tertiaryContainer.copy(alpha = 0.8F)),
horizontalAlignment = Alignment.Start horizontalAlignment = Alignment.Start
) { ) {
SelectionContainer { SelectionContainer {
Text(text = "adb shell dpm set-device-owner com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver", Text(text = "adb shell dpm set-device-owner com.binbin.androidowner/com.binbin.androidowner.MyDeviceAdminReceiver",
color = MaterialTheme.colorScheme.onTertiaryContainer, style = bodyTextStyle) color = colorScheme.onTertiaryContainer, style = bodyTextStyle)
} }
if(!isda){ if(!isda){
Text(text = "使用此命令也会激活Device Admin", style = bodyTextStyle) Text(text = "使用此命令也会激活Device Admin", style = bodyTextStyle)
@@ -186,8 +178,8 @@ fun DpmPermissions(navCtrl:NavHostController){
if(isDeviceOwner(myDpm)|| isProfileOwner(myDpm)||myDpm.isAdminActive(myComponent)){ if(isDeviceOwner(myDpm)|| isProfileOwner(myDpm)||myDpm.isAdminActive(myComponent)){
Text( Text(
text = "注意!在这里撤销权限不会清除配置。比如:被停用的应用会保持停用状态", text = "注意!在这里撤销权限不会清除配置。比如:被停用的应用会保持停用状态",
color = MaterialTheme.colorScheme.onErrorContainer, color = colorScheme.onErrorContainer,
modifier = sections(MaterialTheme.colorScheme.errorContainer.copy(alpha = 0.8F)), modifier = sections(colorScheme.errorContainer.copy(alpha = 0.8F)),
style = bodyTextStyle style = bodyTextStyle
) )
} }
@@ -206,8 +198,15 @@ fun DpmPermissions(navCtrl:NavHostController){
Text("企业资产 : $financed",style=bodyTextStyle) Text("企业资产 : $financed",style=bodyTextStyle)
} }
if(VERSION.SDK_INT>=33){ if(VERSION.SDK_INT>=33){
Text("最小WiFi安全等级${myDpm.minimumRequiredWifiSecurityLevel}",style=bodyTextStyle) val dpmRole = myDpm.devicePolicyManagementRoleHolderPackage
Text("设备策略管理器角色:${myDpm.devicePolicyManagementRoleHolderPackage}",style=bodyTextStyle) Text("设备策略管理器角色:${if(dpmRole==null){"null"}else{""}}",style=bodyTextStyle)
if(dpmRole!=null){
Row(modifier = Modifier.fillMaxWidth().horizontalScroll(rememberScrollState())){
SelectionContainer {
Text(dpmRole)
}
}
}
} }
val encryptionStatus = mapOf( val encryptionStatus = mapOf(
DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE to "未使用", DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE to "未使用",
@@ -218,8 +217,21 @@ fun DpmPermissions(navCtrl:NavHostController){
DevicePolicyManager.ENCRYPTION_STATUS_ACTIVATING to "未知" DevicePolicyManager.ENCRYPTION_STATUS_ACTIVATING to "未知"
) )
Text("加密状态:${encryptionStatus[myDpm.storageEncryptionStatus]}",style=bodyTextStyle) Text("加密状态:${encryptionStatus[myDpm.storageEncryptionStatus]}",style=bodyTextStyle)
if(isDeviceOwner(myDpm)&&VERSION.SDK_INT>=34){ val adminList = myDpm.activeAdmins
Text("MTE策略${myDpm.mtePolicy}",style=bodyTextStyle) if(adminList!=null){
var adminListText = ""
Text(text = "激活的Device admin: ${adminList.size}", style = bodyTextStyle)
var count = adminList.size
for(each in adminList){
count -= 1
adminListText += "$each"
if(count>0){adminListText += "\n"}
}
Row(modifier = Modifier.fillMaxWidth().padding(vertical = 2.dp).horizontalScroll(rememberScrollState())){
SelectionContainer {
Text(text = adminListText, style = bodyTextStyle, color = titleColor)
}
}
} }
} }
} }
@@ -242,21 +254,24 @@ fun DpmPermissions(navCtrl:NavHostController){
Column(modifier = sections()) { Column(modifier = sections()) {
Text(text = "不受控制的账号类型", style = typography.titleLarge,color = titleColor) Text(text = "不受控制的账号类型", style = typography.titleLarge,color = titleColor)
Text("作用未知",style=bodyTextStyle) Text("作用未知",style=bodyTextStyle)
var noManageAccount = myDpm.accountTypesWithManagementDisabled?.toMutableList() var noManageAccount = myDpm.accountTypesWithManagementDisabled
var accountlist by remember{ mutableStateOf("") } var accountlist by remember{ mutableStateOf("") }
val refreshList = { val refreshList = {
accountlist = "" accountlist = ""
if (noManageAccount != null) { if (noManageAccount != null) {
var count = noManageAccount!!.size
for(eachAccount in noManageAccount!!){ for(eachAccount in noManageAccount!!){
accountlist+="$eachAccount \n" count -= 1
accountlist += eachAccount
if(count>0){accountlist += "\n"}
} }
} }
} }
refreshList() refreshList()
if(accountlist!=""){ if(accountlist!=""){
Text(accountlist) Text(text = accountlist, color = titleColor)
}else{ }else{
Text("列表为空 \n",style=bodyTextStyle) Text("",style=bodyTextStyle)
} }
var inputText by remember{ mutableStateOf("") } var inputText by remember{ mutableStateOf("") }
TextField( TextField(
@@ -270,14 +285,14 @@ fun DpmPermissions(navCtrl:NavHostController){
if(isWear){ if(isWear){
Button(onClick={focusManager.clearFocus() Button(onClick={focusManager.clearFocus()
myDpm.setAccountManagementDisabled(myComponent,inputText,true) myDpm.setAccountManagementDisabled(myComponent,inputText,true)
noManageAccount=myDpm.accountTypesWithManagementDisabled?.toMutableList() noManageAccount=myDpm.accountTypesWithManagementDisabled
refreshList() refreshList()
},modifier = Modifier.fillMaxWidth()){ },modifier = Modifier.fillMaxWidth()){
Text("添加至列表") Text("添加至列表")
} }
Button(onClick={focusManager.clearFocus() Button(onClick={focusManager.clearFocus()
myDpm.setAccountManagementDisabled(myComponent,inputText,false) myDpm.setAccountManagementDisabled(myComponent,inputText,false)
noManageAccount=myDpm.accountTypesWithManagementDisabled?.toMutableList() noManageAccount=myDpm.accountTypesWithManagementDisabled
refreshList() refreshList()
},modifier = Modifier.fillMaxWidth()){ },modifier = Modifier.fillMaxWidth()){
Text("从列表中移除") Text("从列表中移除")
@@ -285,14 +300,14 @@ fun DpmPermissions(navCtrl:NavHostController){
Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){ Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){
Button(onClick={focusManager.clearFocus() Button(onClick={focusManager.clearFocus()
myDpm.setAccountManagementDisabled(myComponent,inputText,true) myDpm.setAccountManagementDisabled(myComponent,inputText,true)
noManageAccount=myDpm.accountTypesWithManagementDisabled?.toMutableList() noManageAccount=myDpm.accountTypesWithManagementDisabled
refreshList() refreshList()
},modifier = Modifier.fillMaxWidth(0.48f)){ },modifier = Modifier.fillMaxWidth(0.48f)){
Text("添加至列表") Text("添加至列表")
} }
Button(onClick={focusManager.clearFocus() Button(onClick={focusManager.clearFocus()
myDpm.setAccountManagementDisabled(myComponent,inputText,false) myDpm.setAccountManagementDisabled(myComponent,inputText,false)
noManageAccount=myDpm.accountTypesWithManagementDisabled?.toMutableList() noManageAccount=myDpm.accountTypesWithManagementDisabled
refreshList() refreshList()
},modifier = Modifier.fillMaxWidth(0.92F)){ },modifier = Modifier.fillMaxWidth(0.92F)){
Text("从列表中移除") Text("从列表中移除")
@@ -321,7 +336,7 @@ fun DpmPermissions(navCtrl:NavHostController){
) { saveState = true } ) { saveState = true }
} }
}, },
colors = ButtonDefaults.buttonColors(contentColor = MaterialTheme.colorScheme.onError, containerColor = MaterialTheme.colorScheme.error), colors = ButtonDefaults.buttonColors(contentColor = colorScheme.onError, containerColor = colorScheme.error),
enabled = myDpm.isAdminActive(myComponent) enabled = myDpm.isAdminActive(myComponent)
) { ) {
Text("撤销Device admin") Text("撤销Device admin")
@@ -336,7 +351,7 @@ fun DpmPermissions(navCtrl:NavHostController){
) { saveState = true } ) { saveState = true }
} }
}, },
colors = ButtonDefaults.buttonColors(contentColor = MaterialTheme.colorScheme.onError, containerColor = MaterialTheme.colorScheme.error), colors = ButtonDefaults.buttonColors(contentColor = colorScheme.onError, containerColor = colorScheme.error),
enabled = isProfileOwner(myDpm) enabled = isProfileOwner(myDpm)
) { ) {
Text("撤销Profile owner") Text("撤销Profile owner")
@@ -351,7 +366,7 @@ fun DpmPermissions(navCtrl:NavHostController){
) { saveState = true } ) { saveState = true }
} }
}, },
colors = ButtonDefaults.buttonColors(contentColor = MaterialTheme.colorScheme.onError, containerColor = MaterialTheme.colorScheme.error), colors = ButtonDefaults.buttonColors(contentColor = colorScheme.onError, containerColor = colorScheme.error),
enabled = isDeviceOwner(myDpm) enabled = isDeviceOwner(myDpm)
) { ) {
Text("撤销Device owner") Text("撤销Device owner")
@@ -375,7 +390,7 @@ fun DeviceOwnerInfo(
Column(modifier = sections()) { Column(modifier = sections()) {
val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE) val sharedPref = LocalContext.current.getSharedPreferences("data", Context.MODE_PRIVATE)
val isWear = sharedPref.getBoolean("isWear",false) val isWear = sharedPref.getBoolean("isWear",false)
Text(text = stringResource(name), style = typography.titleLarge, softWrap = false, color = MaterialTheme.colorScheme.onPrimaryContainer) Text(text = stringResource(name), style = typography.titleLarge, softWrap = false, color = colorScheme.onPrimaryContainer)
if(desc!=R.string.place_holder){ if(desc!=R.string.place_holder){
Text( Text(
text = stringResource(desc),modifier = Modifier.padding(top = 6.dp), text = stringResource(desc),modifier = Modifier.padding(top = 6.dp),
@@ -396,7 +411,7 @@ fun DeviceOwnerInfo(
fm.clearFocus() fm.clearFocus()
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}, },
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.6F)} modifier = if(isWear){Modifier.fillMaxWidth(0.48F)}else{Modifier.fillMaxWidth(0.6F)}
) { ) {
Text(text = "应用") Text(text = "应用")
} }
@@ -407,7 +422,7 @@ fun DeviceOwnerInfo(
fm.clearFocus() fm.clearFocus()
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}, },
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.95F)} modifier = Modifier.fillMaxWidth(0.95F)
) { ) {
Text(text = "重置") Text(text = "重置")
} }

View File

@@ -342,7 +342,7 @@ private fun UserSessionMessage(
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}, },
enabled = isDeviceOwner(myDpm)||(isProfileOwner(myDpm)&&profileOwner), enabled = isDeviceOwner(myDpm)||(isProfileOwner(myDpm)&&profileOwner),
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.65F)} modifier = if(isWear){Modifier.fillMaxWidth(0.48F)}else{Modifier.fillMaxWidth(0.65F)}
) { ) {
Text("应用") Text("应用")
} }
@@ -354,7 +354,7 @@ private fun UserSessionMessage(
Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show()
}, },
enabled = isDeviceOwner(myDpm)||(isProfileOwner(myDpm)&&profileOwner), enabled = isDeviceOwner(myDpm)||(isProfileOwner(myDpm)&&profileOwner),
modifier = if(isWear){Modifier}else{Modifier.fillMaxWidth(0.95F)} modifier = Modifier.fillMaxWidth(0.92F)
) { ) {
Text("默认") Text("默认")
} }