首先是实现,实现代码网上很多,github上也有,我是随缘找的一个
GitHub - LUOrenjia/BacklightController: Android App for the backlight control program
-------------------------------------------------------------------------------
这个是7年前的,估计是eclipse上搞的,AS里面导入一下工程,很快就可以编译过。这个不是问题,问题是
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
这个权限的问题,android 6.0后, system app专属。
-----------------------------------------------------------------------------
解决这个问题就需要内置app 或者加 一个keystore, 加uid
keystore位置:
LkkBacklightControl\app\ (app目录下)
解决commit:
diff --git a/app/build.gradle b/app/build.gradle
index 18c712a..6759118 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,21 +23,21 @@ android {
}
}
+ signingConfigs {
+ release {
+ keyAlias 'platform'
+ keyPassword 'android'
+ storeFile file('slm756_keystore')
+ storePassword 'android'
+ }
+
+ debug {
+ keyAlias 'platform'
+ keyPassword 'android'
+ storeFile file('slm756_keystore')
+ storePassword 'android'
+ }
+ }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
diff --git a/app/slm756_keystore b/app/slm756_keystore
new file mode 100644
index 0000000..d4678cb
Binary files /dev/null and b/app/slm756_keystore differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 749b9fd..bf34cb9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.chao.lkkbacklightcontrol">
+ package="com.chao.lkkbacklightcontrol"
+ android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
这样做的好处就是第三方app, 也可以有write_settings权限,
并且【应用信息】--允许系统修改,这个默认为允许了。
keystore制作: