android系统在静音模式下关闭camera拍照声音的方法

roadcome814

roadcome814

2016-02-19 09:04

下面是个android系统在静音模式下关闭camera拍照声音的方法教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!
话说为了防止偷拍,业内有不成文规定,手机公司在做camera时,点击拍照和录像键的时候,必须要有提示音。因此,google也就非常人性化的将播放拍照声音的函数,放到了cameraService中,防止开发者能开发出不响的camera,从而只要调用拍照函数,一定会响,这是写死在framework中的。

话说这个规定在当今有点不合时宜,这不,今天我收到测试提的一个BUG,说是公司的新需求,要求在静音模式下拍照声音也得取消。这么无耻的需求,也许就在我们中国最大的山寨手机公司才会提到。废话不多说,看看是怎么改的。

刚开始想到的是调用audiomanager的service,但是这会涉及到进程间通信,比较繁琐。所以用到了SystemProperity。想在APP监听点击事件时增加一个property,将当时的aduio状态写进去,如果为静音模式,则写入1,然后cameraservice再调用playsound时也取这个property,来判断是否playsound。

关于在app中写入systemprperty,我想引用一下大神的博客,博客地址http://www.cnblogs.com/eustoma/archive/2011/05/28/2415859.html。
以下为引用的博文:
---------------------------------------------------------------------------------------------------------start
使应用程序具有AID_SYSTEM的UID
那如何使应用程序的uid变为1000呢?
由于我可以在Android系统源码的环境下用make来编译,所以需要做如下几步:
l在应用程序的AndroidManifest.xml文件中的manifest节点中加入属性:
android:sharedUserId="android.uid.system";
通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来设置前缀为hw.的属性了。
l修改Android.mk文件,加入LOCAL_CERTIFICATE := platform;
加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform. key,就是platform.pk8和platform.x509.pem两个文件。通过这样的设置,系统才可以拿到platform.pk8和platform.x509.pem两个文件。使用这两个key签名后apk才真正可以放入系统进程中。
然后使用mm命令来编译,生成的apk的uid就会成为1000。在去调用property_set("hw.jpeg.path", "/data/test.jpg");就不会有问题了。
---------------------------------------------------------------------------------------------------------------------------------------------end
忙活半天发现其实在AudioManager.java文件中,已经将一个KEY-VALUE值写入到了SystemProperity中:
 
然后在CameraService.cpp文件中,关于调用playsound()函数的地方加入如下判断:
 
注意:property_get()函数需要引入头文件,cutils/properties.h
展开更多 50%)
分享

猜你喜欢

android系统在静音模式下关闭camera拍照声音的方法

编程语言 网络编程
android系统在静音模式下关闭camera拍照声音的方法

iphone拍照声音关闭方法

iphone iPhone 5s iPhone 6 iphone刷机
iphone拍照声音关闭方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

安卓关闭拍照声音的方法

手机软件
安卓关闭拍照声音的方法

在Windows 下关闭212325端口的方法

服务器
在Windows 下关闭212325端口的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

安卓系统如何关闭手机拍照声音?

Android
安卓系统如何关闭手机拍照声音?

aillis怎么关闭拍照声音

手机软件 应用软件
aillis怎么关闭拍照声音

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

javascript一个判断浏览器类型的函数(类)

javascript一个判断浏览器类型的函数(类)

IOS封装自定义布局的方法

IOS封装自定义布局的方法
下拉加载更多内容 ↓