navigate to home after successfully activate device admin

This commit is contained in:
BinTianqi
2024-05-06 16:33:57 +08:00
parent 3d5f9b949b
commit b71f0dbb8d
4 changed files with 8 additions and 4 deletions

View File

@@ -63,6 +63,12 @@ class MainActivity : ComponentActivity() {
createManagedProfile = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { createManagedProfile = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if(it.resultCode==Activity.RESULT_CANCELED){Toast.makeText(applicationContext, "用户已取消", Toast.LENGTH_SHORT).show()} if(it.resultCode==Activity.RESULT_CANCELED){Toast.makeText(applicationContext, "用户已取消", Toast.LENGTH_SHORT).show()}
} }
addDeviceAdmin = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
val myDpm = applicationContext.getSystemService(DEVICE_POLICY_SERVICE) as DevicePolicyManager
if(myDpm.isAdminActive(ComponentName(applicationContext, Receiver::class.java))){
backToHome = true
}
}
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge() enableEdgeToEdge()

View File

@@ -19,7 +19,6 @@ class Receiver : DeviceAdminReceiver() {
val myComponent = ComponentName(context, this::class.java) val myComponent = ComponentName(context, this::class.java)
if(myDpm.isAdminActive(myComponent)||isProfileOwner(myDpm)||isDeviceOwner(myDpm)){ if(myDpm.isAdminActive(myComponent)||isProfileOwner(myDpm)||isDeviceOwner(myDpm)){
Toast.makeText(context, context.getString(R.string.onEnabled), Toast.LENGTH_SHORT).show() Toast.makeText(context, context.getString(R.string.onEnabled), Toast.LENGTH_SHORT).show()
if(myDpm.isAdminActive(myComponent)&&!isProfileOwner(myDpm)&&!isDeviceOwner(myDpm)){ backToHome=true }
} }
} }

View File

@@ -13,6 +13,7 @@ lateinit var getCaCert: ActivityResultLauncher<Intent>
lateinit var createManagedProfile: ActivityResultLauncher<Intent> lateinit var createManagedProfile: ActivityResultLauncher<Intent>
lateinit var getApk: ActivityResultLauncher<Intent> lateinit var getApk: ActivityResultLauncher<Intent>
lateinit var getUserIcon: ActivityResultLauncher<Intent> lateinit var getUserIcon: ActivityResultLauncher<Intent>
lateinit var addDeviceAdmin: ActivityResultLauncher<Intent>
var userIconUri: Uri? = null var userIconUri: Uri? = null
var apkUri: Uri? = null var apkUri: Uri? = null

View File

@@ -28,7 +28,6 @@ import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.content.ContextCompat.startActivity
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable import androidx.navigation.compose.composable
@@ -36,7 +35,6 @@ import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import com.bintianqi.owndroid.R import com.bintianqi.owndroid.R
import com.bintianqi.owndroid.Receiver import com.bintianqi.owndroid.Receiver
import com.bintianqi.owndroid.backToHome
import com.bintianqi.owndroid.ui.* import com.bintianqi.owndroid.ui.*
import com.bintianqi.owndroid.ui.theme.bgColor import com.bintianqi.owndroid.ui.theme.bgColor
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
@@ -559,7 +557,7 @@ private fun activateDeviceAdmin(inputContext:Context,inputComponent:ComponentNam
val intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN) val intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, inputComponent) intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, inputComponent)
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, inputContext.getString(R.string.activate_device_admin_here)) intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, inputContext.getString(R.string.activate_device_admin_here))
startActivity(inputContext,intent,null) addDeviceAdmin.launch(intent)
}catch(e:ActivityNotFoundException){ }catch(e:ActivityNotFoundException){
Toast.makeText(inputContext,inputContext.getString(R.string.unsupported),Toast.LENGTH_SHORT).show() Toast.makeText(inputContext,inputContext.getString(R.string.unsupported),Toast.LENGTH_SHORT).show()
} }