使用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。
相关推荐
-
android通过Location API显示地址信息的实现方法
本文实例讲述了android通过Location API显示地址信息的实现方法.分享给大家供大家参考.具体如下: android的Locatin API,可以通过Geocoder类,显示具体经纬度的地址信息.如: 通过Geocoder的方法getFromLocation()可以得到Address对象的List.我只取一个Address结果,可以取多个,但是意义不大. StringBuilder builder = new StringBuilder(); builder.append("北纬:&
-
Android 高版本API方法在低版本系统上的兼容性处理
Android 版本更替,新的版本带来新的特性,新的方法. 新的方法带来许多便利,但无法在低版本系统上运行,如果兼容性处理不恰当,APP在低版本系统上,运行时将会crash. 本文以一个具体的例子说明如何在使用高API level的方法时处理好兼容性问题. 例子:根据给出路径,获取此路径所在分区的总空间大小. 在安卓中的文件存储使用参考中提到: 获取文件系统用量情况,在API level 9及其以上的系统,可直接调用File对象的相关方法,以下需自行计算 一般实现 就此需求而言,API leve
-
Android提高之蓝牙隐藏API探秘
前面文章讲解了Android的蓝牙基本用法,本文讲得深入些,探讨下蓝牙方面的隐藏API.用过Android系统设置(Setting)的人都知道蓝牙搜索之后可以建立配对和解除配对,但是这两项功能的函数没有在SDK中给出,那么如何去使用这两项功能呢?本文利用JAVA的反射机制去调用这两项功能对应的函数:createBond和removeBond,具体的发掘和实现步骤如下: 1.使用Git工具下载platform/packages/apps/Settings.git,在Setting源码中查找关于建立
-
android开发教程之获取使用当前api的应用程序名称
比如要获取打开摄像头的应用程序名称,只需要在frameworks/base/core/android/hardware/Camera.java中open()方法中加上如下代码就可以了. 复制代码 代码如下: Application application = ActivityThread.currentApplication();if (application != null) { String packageName = application.getPackageName();
-
android 微信 sdk api调用不成功解决方案
最近一直在调用微信的API,却发现一直调用不成功,纠结了好久,各方面找教程,找官方,官方里的文档也只是写得很模糊,说是按三步走. 1.申请App_ID 2.填写包名3. 获取程序签名的md5值, 这三步只要你走对了就能调通,可是大家都不知道有时候我们打包的keystore和我们打包的keystore获取到的程序签名的md5是不一样的.我们在申请的时候填的程序签名值是正式打包的,但我们在eclipse部署上去的却是用的我们默认的debug.keystore.而这样导致的后果就是程序签名不一样,会一
-
Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式
本文将讲解如何通过codecogs.com和Google.com提供的API接口来将LaTeX数学函数表达式转化为图片形式.具体思路如下: (1)通过EditText获取用户输入的LaTeX数学表达式,然后对表达式格式化使之便于网络传输. (2)将格式化之后的字符串,通过Http请求发送至codecogs.com或者Google.com. (3)获取网站返回的数据流,将其转化为图片,并显示在ImageView上. 具体过程为: 1.获取并格式化LaTeX数学表达式 首先,我们在这个网站输入LaT
-
android通过google api获取天气信息示例
android通过google API获取天气信息 复制代码 代码如下: public class WeatherActivity extends Activity { private TextView txCity; private Button btnSearch; private Handler weatherhandler; private Dialog progressDialog; private Timer timer; /** Called when the activit
-
android monkey自动化测试改为java调用monkeyrunner Api
众所周知,一般情况下我们使用android中的monkeyrunner进行自动化测试时,使用的是python语言来写测试脚本.不过,最近发现可以用java调用monkeyrunner Api,用java语言写测试脚本. 于是,就简单研究了一下.这里做一些总结.希望有对在研究的午饭可以有所用处. 开始时,搜素到一些零碎的教程,说使用java调用monkeyrunner时,需要导入android sdk tools路径下的lib里面的4个包:ddmlib.jar,guavalib.jar,monk
-
使用android隐藏api实现亮度调节的方法
Android 1.5之后将调节亮度的api隐藏了,不过android的源码中依然有方法可以实现,如下: 复制代码 代码如下: IPowerManager power = IPowerManager.Stub.asInterface(ServiceManager .getService("power")); if (power != null) { power.setBacklightBrightness(brightness); 上面的代码无法直接在官方的sdk中调用,会提示找不到I
-
3种Android隐藏顶部状态栏及标题栏的方法
本文包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法,分享给大家供大家参考,具体内容如下 方法一 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 requestWindowFeature(Window.FEA
-
Android隐藏手机底部虚拟按键的方法
现在的Android手机有好多底部带虚拟按键,比如华为.nexus.魅族等等,一般情况下对APP没啥影响,但是有时候就必须要强制隐藏. 例如:游戏的时候,拍照的时候. 接下来加上几个方法就OK 了,代码如下: /** * 隐藏虚拟按键,并且设置成全屏 */ protected void hideBottomUIMenu(){ if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
-
Android OpenCV基础API清晰度亮度识别检测
目录 背景 基础知识 主要Api - 加载图片 imread Utils.bitmapToMat 主要API - 写入图片 端侧常用分析方法 亮度检测 清晰度检测 最后 背景 工作中遇到业务诉求是通过OpenCV对图片进行一些判断操作和优化,这里是看了部分不错的文章,希望总结一个自己的学习过程,温故而知新,有不对的地方可以评论区指出,小白学习海涵. 基础知识 Mat在OpenCV中是非常重要的存在,后续各个API都是在Mat的基础上去做文章,Mat 是Matrix(矩阵)的缩写 ... inli
-
Android亮度调节的几种实现方法
最近在做一个App的设置项,亮度调节.真正做时,发现Android亮度调节比预想要复杂一些.其实目前网上已有不少这方面的资料,但有些博文具有一定误导性.在此将这块内容按照自己理解整理一下. 整体上看,Android亮度调节分为三个层次,分别是:Android系统亮度调节.Android App亮度调节和Android当前屏幕(Window)亮度调节. 1.Android系统亮度调节 Android系统亮度调节全局性最高,常见于系统设置中的亮度设置项.Android中提供了获取和设置系统亮度值("
-
android 屏幕亮度调节方法详解
屏幕亮度自动调节:主要是从Sensor分析之中分离出来分析LIGHT 光线感应器,因此就分析一下自动调节屏幕亮度(手机随着光线的强度自我调节,也就是在亮的光线下屏幕自动调亮一些,暗的时候就自动调暗一些,省得光线对眼睛有刺激)..... (本人从历经挫折才大概了解流程),现在就开始讲一下流程,如果有不对地方希望牛人指出来... 先从Sttings入手吧,在diaplay中有屏幕亮度调节,有一个进度调,上面有一个checkbox(自动调节屏幕亮度的),那么我们当然去找settings下的文件开始看了
-
Android编程设置屏幕亮度的方法
本文实例讲述了Android编程设置屏幕亮度的方法.分享给大家供大家参考,具体如下: 使用场景 最近在研究AndroidL Settings的代码,写了一个简单的控件来操控屏幕亮度. 其实,调节屏幕亮度的场景应用很广,例如很多视频应用都响应touch事件来进行亮度调节. 屏幕亮度调节模式 首先,需要明确屏幕亮度有两种调节模式: Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值为1,自动调节亮度. Settings.System.SCREEN_B
-
Android隐藏和沉浸式虚拟按键NavigationBar的实现方法
有的时候我们在做全屏显示或者视频全屏播放时候,有些手机有底部的虚拟按键,如下图所示: 在开发中我们会遇到需要隐藏虚拟按键或者沉浸式虚拟按键的需求. 上图为沉浸式虚拟按键效果. 上图为隐藏虚拟按键效果. 那我们先说如何隐藏虚拟按键: public static void hideNavKey(Context context) { if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { View v = ((A
-
Android 隐藏底部虚拟键的两种方法
方法一 滑动屏幕 可重新显示出来 protected void hideBottomUIMenu() { //隐藏虚拟按键,并且全屏 if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api View v = this.getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } else if (Build.V
随机推荐
- AngularJS ng-mousedown 指令
- IIS服务器同时设置多个网站的三种方式(图文)
- iOS App开发中使用及自定义UITableViewCell的教程
- Python内建数据结构详解
- Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
- ThinkPHP让分页保持搜索状态的方法
- PHP网页游戏学习之Xnova(ogame)源码解读(十四)
- 跟老齐学Python之使用Python查询更新数据库
- Android NoSuchFieldError解决办法
- Apache多路复用模块(MPMs)介绍
- SQLServer 附加数据库后出现只读或失败的解决方法
- 简介Redis中的showlog功能
- JAVASCRIPT函数作用域和提前声明 分享
- nodejs中使用HTTP分块响应和定时器示例代码
- Java函数式编程(五):闭包
- 深入PHP magic quotes的详解
- Android开发之登录验证实例教程
- 一个简单的自动发送邮件系统(一)
- Android系统检测程序内存占用各种方法
- springboot前后台数据交互的示例代码