Browse Source

权限导致崩溃

weicu
fdp 1 year ago
parent
commit
82625a3db9
  1. 2
      android/app/src/main/AndroidManifest.xml
  2. 9
      local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt

2
android/app/src/main/AndroidManifest.xml

@ -11,6 +11,8 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"/>
<!-- Android 15+ 数据同步前台服务权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
<!-- Android 14+ 麦克风前台服务权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>

9
local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt

@ -201,7 +201,7 @@ class SimpleAudioReceiver(private val context: Context) {
fun startAudioRecord(audioSourceType: AudioSourceType, callback: AudioDataCallback?) {
try {
this.audioSourceType = audioSourceType
this.audioDataCallback = callback
this.audioDataCallback = callback
isWriting.set(true)
@ -209,10 +209,6 @@ fun startAudioRecord(audioSourceType: AudioSourceType, callback: AudioDataCallba
Log.d("tag", "存下来的数据: ${writeQueue?.size}")
}
// 启动前台服务
AudioRecordingForegroundService.startService(context)
Log.d(TAG, "前台服务已启动,开始音频录制")
when (audioSourceType) {
AudioSourceType.MICROPHONE -> runMicrophoneCapture()
AudioSourceType.EXTERNAL -> runExternalCapture()
@ -287,6 +283,9 @@ fun startAudioRecord(audioSourceType: AudioSourceType, callback: AudioDataCallba
*/
private fun runMicrophoneCapture() {
try {
// 启动前台服务
AudioRecordingForegroundService.startService(context)
Log.d(TAG, "前台服务已启动,开始音频录制")
// 根据手机品牌决定是否设置通话音频模式
if (isHonorDevice()) {
Log.d(TAG, "检测到荣耀设备,启用通话音频模式")

Loading…
Cancel
Save