判断其他应用正在使用录音机——AudioManager

背景:
1、Android Q针对录音采用了新的方案:支持共享录音规则。详见官方网站,https://developer.android.google.cn/about/versions/10/features#sharing-audio-input
2、手机中安装多个录音应用,此处以A和B为代表。

问题:
由于采用了共享规则,在A录音时候,打开应用B进行录音,系统将不会给出警告。我想知道在应用B要录音时候,A应用是否在录音中。

解决方法:
1、在Activity中增加Contex与AudioManager的对象,作为其属性;

private Context mContext;
private AudioManager mAudioManger;

2、获取系统录音服务

mContext = MainActivity.this;
...
mAudioManger = (AudioManager)mContext.getSystemService(mContext.AUDIO_SERVICE);

3、获取是否有其他应用在录音
(要求大于等于API level 24)

mAudioManger.getActiveRecordingConfigurations());

如果为空,则说明上述代码被执行时,没有其他应用在录音。

验证代码:(布局只设置了一个按钮)

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    private Context mContext;
    private AudioManager mAudioManger;
    private Button mButton1;
    private Boolean mMicIsBusy = true;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mContext = MainActivity.this;
        mButton1 = findViewById(R.id.button1);
        mButton1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mAudioManger = (AudioManager)mContext.getSystemService(mContext.AUDIO_SERVICE);
                Log.d(TAG, "onClick: " + mAudioManger.getActiveRecordingConfigurations());
                if(  mAudioManger.getActiveRecordingConfigurations().isEmpty()){
                    mMicIsBusy = false;
                }else {
                    mMicIsBusy = true;
                }
                if(mMicIsBusy){
                    Toast.makeText(MainActivity.this,"警告:有录音程序在运行!",Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(MainActivity.this,"没有录音机在运行",Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

演示验证视频链接(哔哩哔哩):
联想Z6手机,Android P(Android 9)。由于我还没有Android Q系统手机,先用它来测试一下吧。哈哈哈!

android

感谢:
博主 阿东探世界 的一篇博文
博主 睡着的海豚 的一篇博文

猜你喜欢

转载自blog.csdn.net/codeIsGood/article/details/103443615