跳至主要內容

AndroidSystemPermission

guodongAndroid大约 3 分钟

AndroidSystemPermission

License: Apache 2.0 open in new window

本项目是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设置以太网DHCP1.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 301.0.0 - latest
isDarkUIEnabled深色主题是否启用API 301.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是否启用ADB1.0.0 - latest
isAdbEnabledADB是否启用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
isTimeFormat24HEnabled24小时制是否启用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
installOTAPackageOTA升级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 231.0.0 - latest
removeToPermanentPowerSaveAllowList应用电池优化API 231.0.0 - latest
isPowerSaveWhitelistApp应用是否已忽略电池优化API 231.0.0 - latest
currentPackageName获取当前包名1.0.0 - latest
currentProcessName获取当前进程名1.0.0 - latest
currentApplication获取当前 Application1.0.0 - 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)
    }
}

详见 Github-AndroidSystemPermissionopen in new windowGitee-AndroidSystemPermissionopen in new window