Android 13 录音APK在后台无数据的处理

文章讨论了在Android设备上安装录音应用时遇到的问题,即录音输出文件为空。解决方案涉及修改AppOpsService.java中的代码,检查特定应用的权限,并通过PRODUCT_PROPERTY_OVERRIDES在device中设置属性以允许特定应用使用前台麦克风。
摘要由CSDN通过智能技术生成

背景:安装录音应用,此时运行在后台,执行录音输出的文件,打开文件显示无数据;

解决方案:

主要修改记录:

frameworks/base/services/core/java/com/android/server/appop/AppOpsService.java

case OP_RECORD_AUDIO:
    if ((capability & PROCESS_CAPABILITY_FOREGROUND_MICROPHONE) != 0) {
         return MODE_ALLOWED;
    } else {
         Slog.d(TAG, "RECORD_AUDIO-evalMode-op:" + op + " ,mode: " + mode
                                        + " ,capability: " + capability);
         //begin modified 
         List<String> packageNames = new ArrayList<>();
         PackageManagerInternal packageManagerInternal = LocalServices.getService(
                                        PackageManagerInternal.class);
         PackageList packages = packageManagerInternal.getPackageList();
         for (String packageName : packages.getPackageNames()) {
             String allowPackages = SystemProperties.get("persist.xxxx");
             String[] permissionPackages = allowPackages.split(",");
                for(String appPkgName : permissionPackages){
                     if(packageName.equals(appPkgName)){
                         return MODE_ALLOWED;
                       }
                  }
         }
         //end
         uniEvent.putInt("RECORD_AUDIO-evalMode-op", op)
                 .putInt("RECORD_AUDIO-mode", mode)
                   .putInt("RECORD_AUDIO-capability", capability);
          UniView.report(uniEvent);
          return MODE_IGNORED;
    }
default:
        return MODE_ALLOWED;
device/sprd/qogirn6pro/uis7870sc_2h10/product/uis7870sc_2h10_nosec/main.mk

PRODUCT_PROPERTY_OVERRIDES += \
	                
  persist.xxx =com.xxx,com.xxx,com.xxx

device中设置属性做基础包用,对需要的应用包名添加进去;

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值