有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
为方便 Android 开发者调试和接入腾讯云游戏多媒体引擎产品 API,本文档主要为您介绍 Android 项目工程导出注意事项。

导出工程

游戏多媒体引擎 SDK 默认提供 v7a、v8a、x86 以及 x86_64 架构,可根据项目需要进行删减。
警告
Android 系统设备运行时缺少对应架构的 so 文件会导致崩溃。

配置 App 权限

必要权限

请务必在工程 AndroidManifest.xml 文件中添加以下权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

根据需求添加权限

请根据需求在工程 AndroidManifest.xml 文件中添加以下权限:
读写权限
蓝牙权限
读写权限不是必须添加的,请根据以下规则进行判断是否添加:
如果使用的是默认的日志路径(/sdcard/Android/data/xxx.xxx.xxx/files),即表示未对 SetLogPath 进行调用,则不需要 WRITE_EXTERNAL_STORAGE 权限。
如果调用 SetLogPath 接口将日志路径放在外部存储设备,以及使用语音消息功能在录制时的存储路径是在外部存储设备,则需要向用户申请 WRITE_EXTERNAL_STORAGE 权限,并得到用户明确批准。
Android 6 以上机器可不添加此权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
需要根据以下规则判断如何添加蓝牙权限:
如果工程中的 targetSDKVersion 为 30 或者以下:
<uses-permission android:name="android.permission.BLUETOOTH"/>
如果工程中的 targetSDKVersion 为 31 或者以上且 GME 版本低于 v2.9.6:
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />

App 混淆相关

如果需要对代码进行混淆,需进行以下配置:
-dontwarn com.tencent.**
-keep class com.tencent.** { *;}
-keepclassmembers class com.tencent.**{*;}
注意,在2.9.0版本后,需要用以下配置进行混淆:
-dontwarn com.gme.**
-keep class com.gme.** { *;}
-keepclassmembers class com.gme.**{*;}

Android 高版本配置

根据谷歌 Developers 平台中对 Android 9 的 应用变更行为描述,Android 9 限制后台应用访问用户输入和传感器数据的能力,即后台运行的应用不能访问麦克风或摄像头。
如果 Android 9 设备用户有锁屏后采集音频或视频的需求,可以在锁屏或退至后台前起一个 Service,并在退出锁屏或返回前台前终止 Service。

Android 工程导出问题