From 6153b2ed7151d68e692d575ac0d63623aa3d6e70 Mon Sep 17 00:00:00 2001 From: BinTianqi <1220958406@qq.com> Date: Tue, 6 Feb 2024 20:42:34 +0800 Subject: [PATCH] nearby streaming policy --- .../binbin/androidowner/ApplicationManage.kt | 97 ++++++++++++++----- .../com/binbin/androidowner/DeviceControl.kt | 37 ++++++- 2 files changed, 107 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt b/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt index ea2c2ca..eeebd2e 100644 --- a/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt +++ b/app/src/main/java/com/binbin/androidowner/ApplicationManage.kt @@ -232,6 +232,50 @@ fun ApplicationManage(){ } } + if(isProfileOwner(myDpm)||isDeviceOwner(myDpm)){ + Column(modifier = sections()) { + Text(text = "许可的无障碍应用", style = typography.titleLarge,color = colorScheme.onPrimaryContainer) + var list = mutableListOf("") + var listText by remember{ mutableStateOf("") } + val refreshList = { + list = myDpm.getPermittedAccessibilityServices(myComponent) ?: mutableListOf("") + listText = "" + var count = list.size + for(eachAccessibility in list) { + count -= 1 + listText += eachAccessibility + if(count>0) { listText += "\n" } + } + } + refreshList() + Text(text = listText, style = bodyTextStyle) + Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){ + Button( + onClick = { + focusMgr.clearFocus() + list.plus(pkgName) + Toast.makeText(myContext, if(myDpm.setPermittedAccessibilityServices(myComponent,list)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() + refreshList() + }, + modifier = Modifier.fillMaxWidth(0.49F) + ) { + Text("添加") + } + Button( + onClick = { + focusMgr.clearFocus() + list.remove(pkgName) + Toast.makeText(myContext, if(myDpm.setPermittedAccessibilityServices(myComponent,list)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() + refreshList() + }, + modifier = Modifier.fillMaxWidth(0.96F) + ) { + Text("移除") + } + } + } + } + Column(modifier = sections()) { Text(text = "许可的输入法", style = typography.titleLarge,color = colorScheme.onPrimaryContainer) var imeList = mutableListOf() @@ -246,34 +290,35 @@ fun ApplicationManage(){ for(eachIme in imeList){ imeListText += "$eachIme \n" } } refreshList() - Text(imeListText) - Row(modifier = if(!isWear){Modifier.fillMaxWidth()}else{Modifier.fillMaxWidth().horizontalScroll(rememberScrollState())},horizontalArrangement = Arrangement.SpaceBetween){ - Button( - onClick = { - imeList.plus(pkgName) - focusMgr.clearFocus() - myDpm.setPermittedInputMethods(myComponent, imeList) - refreshList() - }, - modifier = Modifier.fillMaxWidth(0.49F), - enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm) - ) { - Text("添加") + Text(text = imeListText, style = bodyTextStyle) + Row(modifier = Modifier.fillMaxWidth(),horizontalArrangement = Arrangement.SpaceBetween){ + Button( + onClick = { + imeList.plus(pkgName) + focusMgr.clearFocus() + Toast.makeText(myContext, if(myDpm.setPermittedInputMethods(myComponent, imeList)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() + refreshList() + }, + modifier = Modifier.fillMaxWidth(0.49F), + enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm) + ) { + Text("添加") + } + Button( + onClick = { + imeList.remove(pkgName) + focusMgr.clearFocus() + Toast.makeText(myContext, if(myDpm.setPermittedInputMethods(myComponent, imeList)){"成功"}else{"失败"}, Toast.LENGTH_SHORT).show() + refreshList() + }, + modifier = Modifier.fillMaxWidth(0.96F), + enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm) + ) { + Text("移除") + } } - if(isWear){Spacer(Modifier.padding(horizontal = 2.dp))} - Button( - onClick = { - imeList.remove(pkgName) - focusMgr.clearFocus() - myDpm.setPermittedInputMethods(myComponent,imeList) - refreshList() - }, - modifier = Modifier.fillMaxWidth(0.96F), - enabled = isDeviceOwner(myDpm)||isProfileOwner(myDpm) - ) { - Text("移除") - }} } + Column(modifier = sections()){ Text(text = "清除应用存储", style = typography.titleLarge, color = colorScheme.onPrimaryContainer) Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween){ diff --git a/app/src/main/java/com/binbin/androidowner/DeviceControl.kt b/app/src/main/java/com/binbin/androidowner/DeviceControl.kt index e99de45..34101cd 100644 --- a/app/src/main/java/com/binbin/androidowner/DeviceControl.kt +++ b/app/src/main/java/com/binbin/androidowner/DeviceControl.kt @@ -6,7 +6,6 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import android.os.Build.VERSION -import android.util.Log import android.widget.Toast import androidx.activity.ComponentActivity import androidx.compose.animation.AnimatedVisibility @@ -236,6 +235,42 @@ fun DeviceControl(){ } } + if(VERSION.SDK_INT>=31&&(isDeviceOwner(myDpm)||isProfileOwner(myDpm))){ + Column(modifier = sections()){ + var appPolicy by remember{mutableIntStateOf(myDpm.nearbyAppStreamingPolicy)} + Text(text = "附近App共享", style = typography.titleLarge) + RadioButtonItem("由用户决定",{appPolicy == NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY},{appPolicy = NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY}) + RadioButtonItem("启用",{appPolicy == NEARBY_STREAMING_ENABLED},{appPolicy = NEARBY_STREAMING_ENABLED}) + RadioButtonItem("禁用",{appPolicy == NEARBY_STREAMING_DISABLED},{appPolicy = NEARBY_STREAMING_DISABLED}) + RadioButtonItem("如果足够安全(默认)",{appPolicy == NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY},{appPolicy = NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY}) + Button( + onClick = { + myDpm.nearbyAppStreamingPolicy = appPolicy + Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() + }, + modifier = Modifier.fillMaxWidth() + ) { + Text("应用") + } + Spacer(Modifier.padding(vertical = 3.dp)) + var notificationPolicy by remember{mutableIntStateOf(myDpm.nearbyNotificationStreamingPolicy)} + Text(text = "附近通知共享", style = typography.titleLarge) + RadioButtonItem("由用户决定",{notificationPolicy == NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY},{notificationPolicy = NEARBY_STREAMING_NOT_CONTROLLED_BY_POLICY}) + RadioButtonItem("启用",{notificationPolicy == NEARBY_STREAMING_ENABLED},{notificationPolicy = NEARBY_STREAMING_ENABLED}) + RadioButtonItem("禁用",{notificationPolicy == NEARBY_STREAMING_DISABLED},{notificationPolicy = NEARBY_STREAMING_DISABLED}) + RadioButtonItem("如果足够安全(默认)",{notificationPolicy == NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY},{notificationPolicy = NEARBY_STREAMING_SAME_MANAGED_ACCOUNT_ONLY}) + Button( + onClick = { + myDpm.nearbyNotificationStreamingPolicy = notificationPolicy + Toast.makeText(myContext, "成功", Toast.LENGTH_SHORT).show() + }, + modifier = Modifier.fillMaxWidth() + ) { + Text("应用") + } + } + } + if(VERSION.SDK_INT>=28&&isDeviceOwner(myDpm)){ Column(modifier = sections()){ val lockTaskPolicyList = mutableListOf(