本项目是Android系统权限工具集,需依赖系统签名并配置 android:sharedUserId="android.uid.system"。
API兼容性:Android 5.1(21) - Android 16(36)
目前仅在瑞芯微系列板卡上进行了测试,相应的厂商如下:
- AOSP
- 海康威视
- 欣威视通
- 迪文
| 接口名称 | 接口描述 | Android API | 支持版本 | 备注 |
|---|---|---|---|---|
setContext |
设置上下文 | 1.0.0 - latest | ||
getVendor |
获取厂商标识 | 1.0.0 - latest | ||
getVersion |
获取SDK版本 | 1.0.0 - latest | ||
enableEthernet |
是否启用以太网 | 1.0.0 - latest | ||
isEthernetEnabled |
以太网是否启用 | 1.0.0 - latest | ||
setEthernetStaticAddress |
设置以太网静态地址 | 1.0.0 - latest | ||
setEthernetDhcpAddress |
设置以太网DHCP | 1.0.0 - latest | ||
getEthernetNetworkAddress |
获取以太网网络地址 | 1.0.0 - latest | ||
getEthernetMacAddress |
获取以太网MAC地址 | 1.0.0 - latest | ||
reboot |
重启设备 | 1.0.0 - latest | ||
shutdown |
关闭设备 | 1.0.0 - latest | ||
factoryReset |
恢复出厂设置 | 1.0.1 - latest | ||
grantRuntimePermission |
静默授予运行时权限和特殊权限 | 1.0.0 - latest | ||
grantUsbPermission |
静默授予Usb权限 | 1.0.1 - latest | ||
getLauncher |
获取系统桌面 | 1.0.0 - latest | ||
setLauncher |
设置系统桌面 | 1.0.0 - latest | ||
openSystemLauncher |
打开系统桌面 | 1.0.0 - latest | ||
openSystemSettings |
打开系统设置 | 1.0.0 - latest | ||
openSystemDevelopmentSettings |
打开系统开发者选项设置 | 1.0.0 - latest | ||
setScreenBrightness |
设置屏幕百分比亮度 | 1.0.0 - latest | ||
getScreenBrightness |
获取屏幕百分比亮度 | 1.0.0 - latest | ||
enableAutoBrightness |
是否启用自动调节亮度 | 1.0.0 - latest | ||
isAutoBrightnessEnabled |
自动调节亮度是否启用 | 1.0.0 - latest | ||
enableDarkUI |
是否启用深色主题 | API 30 | 1.0.0 - latest | |
isDarkUIEnabled |
深色主题是否启用 | API 30 | 1.0.0 - latest | |
enableScreenNeverOff |
是否启用永不关闭屏幕 | 1.0.0 - latest | ||
isScreenNeverOffEnabled |
永不关闭屏幕是否启用 | 1.0.0 - latest | ||
setScreenOn |
亮屏 | 1.0.0 - latest | ||
setScreenOff |
息屏 | 1.0.0 - latest | ||
enableScreenAutoRotation |
是否启用屏幕自动旋转 | 1.0.0 - latest | ||
isScreenAutoRotationEnabled |
屏幕自动旋转是否启用 | 1.0.0 - latest | ||
setScreenRotation |
设置屏幕旋转,顺时针旋转 | 1.0.0 - latest | ||
getScreenRotation |
获取屏幕旋转 | 1.0.0 - latest | ||
enableAdb |
是否启用ADB | 1.0.0 - latest | ||
isAdbEnabled |
ADB是否启用 | 1.0.0 - latest | ||
setAdbPort |
设置ADB端口 | 1.0.0 - latest | ||
getAdbPort |
获取ADB端口 | 1.0.0 - latest | ||
enableSystemBar |
是否启用状态栏和导航栏 | 1.0.0 - latest | ||
isSystemBarEnabled |
状态栏和导航栏是否启用 | 1.0.0 - latest | ||
setTimeZone |
设置系统时区 | 1.0.0 - latest | ||
setDate |
设置系统日期 | 1.0.0 - latest | ||
setTime |
设置系统时间 | 1.0.0 - latest | ||
enableTimeFormat24H |
是否启用24小时制 | 1.0.0 - latest | ||
isTimeFormat24HEnabled |
24小时制是否启用 | 1.0.0 - latest | ||
clearApplicationUserData |
清除应用程序用户数据,包含缓存数据 | 1.0.0 - latest | ||
installPackage |
静默安装 | 1.0.0 - latest | ||
uninstallPackage |
静默卸载 | 1.0.0 - latest | ||
killBackgroundProcesses |
杀死应用后台进程 | 1.0.0 - latest | ||
forceStopPackage |
强行停止应用 | 1.0.0 - latest | ||
installOTAPackage |
OTA升级 | 1.0.0 - latest | ||
takeScreenShot |
屏幕截图 | 1.0.0 - latest | ||
takeScreenShot |
屏幕截图 | 1.0.0 - latest | ||
getFirmwareVersion |
获取固件版本 | 1.0.0 - latest | ||
getNtpTime |
获取NTP服务器时间 | 1.0.0 - latest | ||
addToPermanentPowerSaveAllowList |
忽略应用电池优化 | API 23 | 1.0.0 - latest | |
removeToPermanentPowerSaveAllowList |
应用电池优化 | API 23 | 1.0.0 - latest | |
isPowerSaveWhitelistApp |
应用是否已忽略电池优化 | API 23 | 1.0.0 - latest | |
currentPackageName |
获取当前包名 | 1.0.0 - latest | ||
currentProcessName |
获取当前进程名 | 1.0.0 - latest | ||
currentApplication |
获取当前 Application |
1.0.0 - latest | ||
registerProcessObserver |
注册进程观察者 | 1.0.2 - latest | ||
unregisterProcessObserver |
反注册进程观察者 | 1.0.2 - latest |
// AOSP
implemention("com.sunxiaodou.android:system-permission-adapter-aosp:${latest-version}")
// 海康威视
implemention("com.sunxiaodou.android:system-permission-adapter-hikvision:${latest-version}")
// 欣威视通
implemention("com.sunxiaodou.android:system-permission-adapter-signway:${latest-version}")
// 迪文
implemention("com.sunxiaodou.android:system-permission-adapter-dwin:${latest-version}")首先在 Application 里初始化:
class PermissionApplication : Application() {
companion object {
private const val TAG = "PermissionApplication"
}
override fun onCreate() {
super.onCreate()
Log.d(TAG, "onCreate: currentProcessName: ${SystemPermissionCompat.currentProcessName()}")
// 1.首先必须根据厂商选择合适的实现,进行注入
SystemPermissionCompat.setDelegate(AospSystemPermission()) // AOSP
// SystemPermissionCompat.setDelegate(HikvisionSystemPermission()) // 海康威视
// SystemPermissionCompat.setDelegate(SignWaySystemPermission()) // 欣威视通
// SystemPermissionCompat.setDelegate(DWinSystemPermission()) // 迪文
// 2.然后注入Context进行初始化
SystemPermissionCompat.setContext(this)
}
}val address = SystemPermissionCompat.getEthernetNetworkAddress()val reboot = SystemPermissionCompat.reboot()