Android Q(10.0)从其他应用捕获该应用的音频 中文文档

播放捕捉

Android Q包含一个新的AudioPlaybackCapture API。此API使应用程序能够复制其他应用程序正在播放的音频。此功能是屏幕捕获的模拟,但适用于音频。主要用例是用于想要捕获游戏正在播放的音频的流媒体应用。

请注意,捕获API不会影响正在捕获其音频的应用的延迟。

 

构建捕获应用程序

先决条件

 

为了安全和隐私,播放捕获带来了一些限制。为了能够捕获音频,应用必须满足以下要求:

 

捕获音频

 

要从其他应用程序捕获音频,您的应用程序必须构建一个 AudioRecord对象并添加一个对象AudioPlaybackCaptureConfiguration 。跟着这些步骤:

  1. 打电话AudioPlaybackCaptureConfiguration.Builder.build() 来建立一个AudioPlaybackCaptureConfiguration
  2. AudioRecord通过调用将配置传递给 setAudioPlaybackCaptureConfig

 

通过音频内容限制捕获

 

应用可以使用以下方法限制它可以捕获的音频:

请注意,您不能同时使用addMatchingUsage()excludeUsage()方法。你必须选择其中一个。同样的,你不能使用addMatchingUid(),并excludeUid() 在同一时间。

 

允许播放捕获

 

您可以配置应用以防止其他应用捕获其音频。只有当应用满足以下要求时,才能捕获来自应用的音频:

 

用法

 

产生音频玩家必须设置它的使用 到USAGE_MEDIA, USAGE_GAME或者 USAGE_UNKNOWN

 

捕获政策

 

玩家的捕获策略必须是 AudioAttributes.ALLOW_CAPTURE_BY_ALL,允许其他应用程序捕获回放。这可以通过多种方式完成:

如果满足这些先决条件,则可以捕获播放器产生的任何音频。

注意:应用程序音频的捕获能力也取决于应用程序targetSdkVersion

  • 默认情况下,针对Android 9.0版本(包括Android版本)的应用程序不允许回放捕获。要启用它,请包含android:allowAudioPlaybackCapture="true"在应用程序的manifest.xml文件中。
  • 默认情况下,定位Android Q或更高版本的应用会允许捕获其音频。要禁用播放捕获,请包含android:allowAudioPlaybackCapture="false"在应用程序的manifest.xml文件中。

 

禁用系统捕获

 

允许上述捕获的保护仅适用于应用程序。Android系统组件忽略这些约束,并且可以默认捕获回放。其中许多组件都是由Android供应商定制的,并支持可访问性和字幕等功能。因此,建议应用程序允许系统捕获其播放。在极少数情况下,当您不希望系统捕获应用程序的播放时,请将捕获策略设置为 ALLOW_CAPTURE_BY_NONE

 

在运行时设置策略

 

您可以AudioManager.setAllowedCapturePolicy()在应用程序运行时调用更改捕获策略。如果在调用方法时正在播放MediaPlayer或AudioTrack,则音频不受影响。您必须关闭并重新打开播放器或跟踪以使策略更改生效。

 

Policy = manifest + AudioManager + AudioAttributes

 

由于可以在多个地方指定捕获策略,因此了解如何确定有效策略非常重要。始终应用限制性最强的捕获策略。例如,其清单包含的应用程序setAllowedCapturePolicy="false"将永远不允许非系统应用程序捕获其音频,即使AudioManager#setAllowedCapturePolicy设置为ALLOW_CAPTURE_BY_ALL。同样,如果AudioManager#setAllowedCapturePolicy设置为ALLOW_CAPTURE_BY_ALL和清单设置setAllowedCapturePolicy="true",但媒体播放器 AudioAttributes是使用AudioAttributes.Builder#setAllowedCapturePolicy(ALLOW_CAPTURE_BY_SYSTEM),则此媒体播放器将无法被非系统应用程序捕获。

 

下表总结了清单属性和有效策略的效果:

allowAudioPlaybackCaptureALLOW_CAPTURE_BY_ALLALLOW_CAPTURE_BY_SYSTEMALLOW_CAPTURE_BY_NONE
任何应用程序系统没有捕获
系统系统没有捕获
### 回答1: android 10.0系统应用默认授权是指在android 10.0系统中,部分应用在安装后默认会被授予一些权限,而不需要用户在应用启动后再去手动开启这些权限,这样可以提高用户的使用体验。 android 10.0系统应用默认授权的目的是为了加强应用的安全性,提高用户的隐私保护。应用需要访问某些敏感数据或功能时,用户在使用前需要手动开启权限,这样可以减少恶意应用通过获取用户授权的方式获取用户的私人信息。 在android 10.0系统中,应用默认被授权的权限包括日历、相机、联系人、位置、麦克风、电话、短信、存储空间等。这些权限是应用正常运行所必需的,用户可以在应用管理器中查看和管理应用授权的权限。 尽管android 10.0系统应用默认授权提高了用户的使用体验,但也存在一些风险。如果用户使用的是恶意应用,这些应用也可以默认获取一些敏感权限,从而获取用户的私人信息。因此,用户需要保持对应用的警惕,并仔细审核应用的权限请求。 ### 回答2: 在Android 10.0系统中,应用默认授权是一种新的权限模型。它改变了以往Android系统中权限管理的方式,使用户对应用程序的权限管理更加方便和安全。 传统的权限管理模型通常是一次性处理权限请求,无法区分应用程序对某一项权限的使用情况。这种方式缺少细节和灵活性,可能导致应用程序通过某些权限去访问用户的隐私信息。而Android 10.0系统应用默认授权则可以保护用户的隐私信息和数据安全。 应用默认授权模型允许应用程序在不请求用户手动授权的情况下,自动获得某些权限,并在必要的时候再向用户请求授权。这种方式可以减少用户被安装并包含恶意代码的应用程序所利用的风险。 具体地说,当应用程序请求任何运行时权限时,Android 10.0系统将无法立即授予权限。相反,它将显示一个对话框,询问用户是否要授予权限。只有在用户同意授予权限时,应用程序才能获得此权限。 此外,应用默认授权模型还能够自动限制应用程序对某些权限的访问,比如位置信息和网络数据,除非用户主动授予权限或应用程序已经获得了相应的批准。 总之,Android 10.0系统的应用默认授权能够保护用户隐私,增加应用程序的灵活性,并减少用户遭受来自恶意应用程序的风险。 ### 回答3: Android 10.0系统的应用默认授权,是指所有应用程序在安装时系统会默认授予其部分权限,而不是像以前版本的系统一样需要用户在应用使用时手动授权。 Android 10.0系统应用默认授权的目的,是为了提高应用程序的用户便利性和操作流畅性,同时还可以降低用户在使用应用程序时需要授权的次数。但是这也有可能导致一些应用程序获取用户隐私的风险。 在Android 10.0系统中,应用程序默认被授权的权限包括:网络访问、用户日历、联系人和传感器等。对于其他一些权限,如摄像头、麦克风、存储空间和定位等信息,用户在应用程序使用时需要手动授权才能访问。 因此,用户在使用Android 10.0系统时需要非常谨慎地选择哪些应用程序可以获得自己的隐私权限。建议用户在安装应用程序前,仔细检查其权限请求,尽可能减少不必要的隐私授权操作。 同时,为了更好地保护用户的隐私,Android 10.0系统也提供了更加严格的权限管理功能。用户可以通过设置菜单中的 “应用程序和通知”-“应用程序权限” 来查看和修改应用程序的权限,在此基础上更好地控制应用程序的使用和权限访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值