mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 19:15:58 +00:00
Add SET_PERMISSION APIs (#159)
This commit is contained in:
21
Readme-en.md
21
Readme-en.md
@@ -86,15 +86,18 @@ Samsung restricts Android's multiple users feature. There is currently no soluti
|
||||
## API
|
||||
|
||||
| ID | Extras | Minimum Android version |
|
||||
|------------------------|---------------|:-----------------------:|
|
||||
| HIDE | `package` | |
|
||||
| UNHIDE | `package` | |
|
||||
| SUSPEND | `package` | 7 |
|
||||
| UNSUSPEND | `package` | 7 |
|
||||
| ADD_USER_RESTRICTION | `restriction` | |
|
||||
| CLEAR_USER_RESTRICTION | `restriction` | |
|
||||
| LOCK | | |
|
||||
| REBOOT | | 7 |
|
||||
|--------------------------|------------------------|:-----------------------:|
|
||||
| `HIDE` | `package` | |
|
||||
| `UNHIDE` | `package` | |
|
||||
| `SUSPEND` | `package` | 7 |
|
||||
| `UNSUSPEND` | `package` | 7 |
|
||||
| `ADD_USER_RESTRICTION` | `restriction` | |
|
||||
| `CLEAR_USER_RESTRICTION` | `restriction` | |
|
||||
| `SET_PERMISSION_DEFAULT` | `package` `permission` | 6 |
|
||||
| `SET_PERMISSION_GRANTED` | `package` `permission` | 6 |
|
||||
| `SET_PERMISSION_DENIED` | `package` `permission` | 6 |
|
||||
| `LOCK` | | |
|
||||
| `REBOOT` | | 7 |
|
||||
|
||||
[Available user restrictions](https://developer.android.com/reference/android/os/UserManager#constants_1)
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
[English](Readme-en.md) | [简体中文](Readme.md)
|
||||
|
||||
> [!important]
|
||||
> The Japanese readme need update
|
||||
|
||||
# OwnDroid
|
||||
|
||||
AndroidのDevice owner特権を使用してデバイスを管理します。
|
||||
|
||||
21
Readme.md
21
Readme.md
@@ -84,15 +84,18 @@ user limit reached
|
||||
## API
|
||||
|
||||
| ID | Extra | 最小安卓版本 |
|
||||
|------------------------|---------------|:------:|
|
||||
| HIDE | `package` | |
|
||||
| UNHIDE | `package` | |
|
||||
| SUSPEND | `package` | 7 |
|
||||
| UNSUSPEND | `package` | 7 |
|
||||
| ADD_USER_RESTRICTION | `restriction` | |
|
||||
| CLEAR_USER_RESTRICTION | `restriction` | |
|
||||
| LOCK | | |
|
||||
| REBOOT | | 7 |
|
||||
|--------------------------|------------------------|:------:|
|
||||
| `HIDE` | `package` | |
|
||||
| `UNHIDE` | `package` | |
|
||||
| `SUSPEND` | `package` | 7 |
|
||||
| `UNSUSPEND` | `package` | 7 |
|
||||
| `ADD_USER_RESTRICTION` | `restriction` | |
|
||||
| `CLEAR_USER_RESTRICTION` | `restriction` | |
|
||||
| `SET_PERMISSION_DEFAULT` | `package` `permission` | 6 |
|
||||
| `SET_PERMISSION_GRANTED` | `package` `permission` | 6 |
|
||||
| `SET_PERMISSION_DENIED` | `package` `permission` | 6 |
|
||||
| `LOCK` | | |
|
||||
| `REBOOT` | | 7 |
|
||||
|
||||
[可用的用户限制](https://developer.android.google.cn/reference/android/os/UserManager#constants_1)
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.bintianqi.owndroid
|
||||
|
||||
import android.app.admin.DevicePolicyManager
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
@@ -18,8 +19,10 @@ class ApiReceiver: BroadcastReceiver() {
|
||||
val dpm = context.getDPM()
|
||||
val receiver = context.getReceiver()
|
||||
val app = intent.getStringExtra("package")
|
||||
val permission = intent.getStringExtra("permission")
|
||||
val restriction = intent.getStringExtra("restriction")
|
||||
if(!app.isNullOrEmpty()) log += "\npackage: $app"
|
||||
if (!app.isNullOrEmpty()) log += "\npackage: $app"
|
||||
if (!permission.isNullOrEmpty()) log += "\npermission: $permission"
|
||||
try {
|
||||
@SuppressWarnings("NewApi")
|
||||
val ok = when(intent.action?.removePrefix("com.bintianqi.owndroid.action.")) {
|
||||
@@ -29,6 +32,24 @@ class ApiReceiver: BroadcastReceiver() {
|
||||
"UNSUSPEND" -> dpm.setPackagesSuspended(receiver, arrayOf(app), false).isEmpty()
|
||||
"ADD_USER_RESTRICTION" -> { dpm.addUserRestriction(receiver, restriction); true }
|
||||
"CLEAR_USER_RESTRICTION" -> { dpm.clearUserRestriction(receiver, restriction); true }
|
||||
"SET_PERMISSION_DEFAULT" -> {
|
||||
dpm.setPermissionGrantState(
|
||||
receiver, app!!, permission!!,
|
||||
DevicePolicyManager.PERMISSION_GRANT_STATE_DEFAULT
|
||||
)
|
||||
}
|
||||
"SET_PERMISSION_GRANTED" -> {
|
||||
dpm.setPermissionGrantState(
|
||||
receiver, app!!, permission!!,
|
||||
DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED
|
||||
)
|
||||
}
|
||||
"SET_PERMISSION_DENIED" -> {
|
||||
dpm.setPermissionGrantState(
|
||||
receiver, app!!, permission!!,
|
||||
DevicePolicyManager.PERMISSION_GRANT_STATE_DENIED
|
||||
)
|
||||
}
|
||||
"LOCK" -> { dpm.lockNow(); true }
|
||||
"REBOOT" -> { dpm.reboot(receiver); true }
|
||||
else -> {
|
||||
|
||||
@@ -323,7 +323,8 @@ fun ApiSettings(onNavigateUp: () -> Unit) {
|
||||
onClick = {
|
||||
sp.apiKey = key
|
||||
context.showOperationResultToast(true)
|
||||
}
|
||||
},
|
||||
enabled = key.isNotEmpty()
|
||||
) {
|
||||
Text(stringResource(R.string.apply))
|
||||
}
|
||||
|
||||
@@ -536,7 +536,8 @@ fun PermissionsManagerScreen(onNavigateUp: () -> Unit, param: PermissionsManager
|
||||
}
|
||||
if(selectedPermission != null) {
|
||||
fun changeState(state: Int) {
|
||||
dpm.setPermissionGrantState(receiver, packageName, selectedPermission!!.permission, state)
|
||||
val result = dpm.setPermissionGrantState(receiver, packageName, selectedPermission!!.permission, state)
|
||||
if (!result) context.showOperationResultToast(false)
|
||||
statusMap[selectedPermission!!.permission] = dpm.getPermissionGrantState(receiver, packageName, selectedPermission!!.permission)
|
||||
selectedPermission = null
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user