使用android隐藏api实现亮度调节的方法

Android 1.5之后将调节亮度的api隐藏了,不过android的源码中依然有方法可以实现,如下:

复制代码 代码如下:
IPowerManager power = IPowerManager.Stub.asInterface(ServiceManager

.getService("power"));

if (power != null) {

power.setBacklightBrightness(brightness);

上面的代码无法直接在官方的sdk中调用,会提示找不到IpowerManager和I ServiceManager,需要下载android的源码,将调用这个方法的工程在android源码环境下编译。

编译方法如下,在调用该方法的工程根目录下创建Android.mk文件:

复制代码 代码如下:
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := user

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := myProject

LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

另外,还需要在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。(更正,这个属性不需要添加)

将工程目录拷贝到/packages/apps/下,执行mmm编译。会在out目录下生成apk文件,这里的apk还无法直接使用,会提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform key。

接下来使用platform key对apk签名:

1. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。

2. 使用目标系统的platform密钥来重新给apk文件签名。首先找到密钥文件,在我的Android源码目录中的位置是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。然后用Android提供的Signapk工具来签名,signapk的源代码是在"build\tools\signapk"下,用法为"java –jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk"

签名后的apk就可以使用了,通过这种方法还可以使用其他的隐藏api。

时间: 2024-10-26 19:48:18

使用android隐藏api实现亮度调节的方法的相关文章

使用android隐藏api实现亮度调节的方法_Android

Android 1.5之后将调节亮度的api隐藏了,不过android的源码中依然有方法可以实现,如下: 复制代码 代码如下: IPowerManager power = IPowerManager.Stub.asInterface(ServiceManager               .getService("power")); if (power != null) {    power.setBacklightBrightness(brightness); 上面的代码无法直接在

3种Android隐藏顶部状态栏及标题栏的方法_Android

本文包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法,分享给大家供大家参考,具体内容如下 方法一 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 requestWindowFeature(Window.FEA

3种Android隐藏顶部状态栏及标题栏的方法

本文包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法,分享给大家供大家参考,具体内容如下 方法一 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 requestWindowFeature(Window.FEA

Android提高之蓝牙隐藏API探秘_Android

前面文章讲解了Android的蓝牙基本用法,本文讲得深入些,探讨下蓝牙方面的隐藏API.用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出,那么如何去使用这两项功能呢?本文利用JAVA的反射机制去调用这两项功能对应的函数:createBond和removeBond,具体的发掘和实现步骤如下: 1.使用Git工具下载platform/packages/apps/Settings.git,在Setting源码中查找关于建立

解决方案-关于网站视频亮度调节,隐藏了滑杆,怎么调节

问题描述 关于网站视频亮度调节,隐藏了滑杆,怎么调节 我不知无意中按了哪个快后键,还是什么原因,把爱奇艺视频亮度调高了.但是爱奇艺网站又隐藏了调亮度的滑杆,我不知怎么调回来,现在亮度过于的高,求网站开发人员给个解决方案. 解决方案 清除浏览器缓存了就出来了

Android亮度调节的几种实现方法_Android

最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看,Android亮度调节分为三个层次,分别是:Android系统亮度调节.Android App亮度调节和Android当前屏幕(Window)亮度调节. 1.Android系统亮度调节 Android系统亮度调节全局性最高,常见于系统设置中的亮度设置项.Android中提供了获取和设置系统亮度值("

android 屏幕亮度调节方法详解_Android

屏幕亮度自动调节:主要是从Sensor分析之中分离出来分析LIGHT 光线感应器,因此就分析一下自动调节屏幕亮度(手机随着光线的强度自我调节,也就是在亮的光线下屏幕自动调亮一些,暗的时候就自动调暗一些,省得光线对眼睛有刺激).....     (本人从历经挫折才大概了解流程),现在就开始讲一下流程,如果有不对地方希望牛人指出来...     先从Sttings入手吧,在diaplay中有屏幕亮度调节,有一个进度调,上面有一个checkbox(自动调节屏幕亮度的),那么我们当然去找settings

Android提高之蓝牙隐藏API探秘

前面文章讲解了Android的蓝牙基本用法,本文讲得深入些,探讨下蓝牙方面的隐藏API.用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出,那么如何去使用这两项功能呢?本文利用JAVA的反射机制去调用这两项功能对应的函数:createBond和removeBond,具体的发掘和实现步骤如下: 1.使用Git工具下载platform/packages/apps/Settings.git,在Setting源码中查找关于建立

android 屏幕亮度调节方法详解

屏幕亮度自动调节:主要是从Sensor分析之中分离出来分析LIGHT 光线感应器,因此就分析一下自动调节屏幕亮度(手机随着光线的强度自我调节,也就是在亮的光线下屏幕自动调亮一些,暗的时候就自动调暗一些,省得光线对眼睛有刺激)..... (本人从历经挫折才大概了解流程),现在就开始讲一下流程,如果有不对地方希望牛人指出来... 先从Sttings入手吧,在diaplay中有屏幕亮度调节,有一个进度调,上面有一个checkbox(自动调节屏幕亮度的), 那么我们当然去找settings下的文件开始看