目录

Android6.0动态获取音视频权限的问题

目录

Android6.0+动态获取音视频权限的问题

前几天修改了 Libxxx.so has text relocations 问题之后, APP targetSdkVersion 可以提到26了,但是经过实际测试发现, 在 APP 首次安装时,会导致视频黑屏和没有声音的问题,之后多次呼叫也不能恢复正常。后来发现规律,退出后台后音视频都正常的。秉着“必现的问题都是能解决的问题”的原则,多次调试后发现,跟 Android 6.0 以后动态获取音视频权限有关(基于安全性能的考虑, Android 6.0 (API 23) 以后, Google 规定了系统需要动态获取权限)。

加了调试日志后发现,首次安装时,因为没有音视频权限, Linphone 初始化时通过 AndroidHelperClass 获取不到摄像头和声卡列表。由于只在初始化时加载一次摄像头和声卡列表,导致后来获取音视频权限之后,不能恢复,只有通过杀死后台重新初始化解决。

解决方法:

增加 reloadVideoDevicesreloadSoundDevices 两个接口,在 APP 获取到音视频权限后,重新加载一下,并重新 setVideoDevicessetSoundDevices 就可以解决首次安装应用时,没有权限导致获取不能音视频的问题。