去除Android系统应用的通知功能

 

        Android手机上,当有其他录音软件正在录音,打开系统录音软件开始录音时会发生录音冲突,弹出对话框提示“无法开始新的录制,其他应用程序已在录制” ,如下图所示。(测试机为Samsung GT-I9508,android4.4.2)

                                 

        这是由于android系统默认系统应用打开“显示通知”开关,且无法通过点击使其关闭。若想去除Android系统应用的通知功能,可利用如下代码:

         private static void test(){             StringpName = "com.sec.android.app.voicerecorder";             int uid = 10157;             boolean enable = false;             Log.v("test","enter testjava");             INotificationManager nm =INotificationManager.Stub.asInterface(ServiceManager.getService("notification"));               try {                          nm.setNotificationsEnabledForPackage(pName, uid, enable);               } catch (Exception e){                   e.printStackTrace();               Log.v("test", e.getMessage());             }         }

        注意:importandroid.app.INotificationManager;需要在工程中加入classes.jar(android 4.4版本),下载地址(http://download.csdn.net/detail/phoebe_2012/8700753)

        普通应用执行上述代码会无法成功,因为该函数setNotificationsEnabledForPackage(Stringpkg, int uid, boolean enabled)中checkCallerIsSystem()函数校验uid检查调用程序有无权限。

         boolean isUidSystem(int uid) {             final int appid =UserHandle.getAppId(uid);             return (appid == Process.SYSTEM_UID || appid == Process.PHONE_UID || uid== 0);         }

        只有uid=1000或1001或0时才能调用该函数关闭通知功能。因而可通过起一个root权限的进程去执行jar包里的test()函数,具体代码见http://download.csdn.net/detail/phoebe_2012/8764383

        在bin文件夹中生成test.jar后,需用dx.bat脚本将.class文件编译成class.dex文件,生成tt.jar,分别将可执行文件tt放入手机/system/bin文件夹下,tt.jar放入/system/framework文件夹下。以root权限执行tt后,去除了Android系统应用录音机的通知功能,使其在发生录音冲突时不再弹对话框提示。结果如下图所示。


    

更多相关文章

  1. 箭头函数的基础使用
  2. Python技巧匿名函数、回调函数和高阶函数
  3. 浅析android通过jni控制service服务程序的简易流程
  4. Android中不同应用间实现SharedPreferences数据共享
  5. 关于Android(安卓)Studio3.2新建项目Android(安卓)resource link
  6. Android(安卓)- Manifest 文件 详解
  7. Android之应用程序基础
  8. 【Android(安卓)开发教程】Toast通知
  9. Android四大组件的理解

随机推荐

  1. Day6 快速学习OkHttp3的九大用法
  2. android webkit CSS3及Render初窥
  3. Android(安卓)完美退出 App 方法
  4. android 音效处理(1)
  5. 书籍汇总
  6. 保持长宽比 对背景图像进行修改android:s
  7. Android封装jar包,把当前项目设置成module
  8. android studio线性布局,相对布局,TestView
  9. Android Bitmap和Canvas学习笔记
  10. [android] 隐式意图的配置