【问题标题】:Record audio permission on android 6 based on Unity基于Unity在android 6上录制音频权限
【发布时间】:2016-03-15 01:32:21
【问题描述】:

我对 Android 6.0 Marshmallow 有疑问。当我尝试使用麦克风并记录用户输入时,出现以下错误。

12-09 18:26:42.226 204-10957/? W/ServiceManager: Permission failure: android.permission.RECORD_AUDIO from uid=10274 pid=757
12-09 18:26:42.226 204-10957/? E/: Request requires android.permission.RECORD_AUDIO
12-09 18:26:42.226 204-10957/? E/AudioFlinger: openRecord() permission denied: recording not allowed
12-09 18:26:42.226 757-1251/com.facebook.singApp E/AudioRecord: AudioFlinger could not create record track, status: -1
12-09 18:26:42.228 204-1253/? I/AudioFlinger: AudioFlinger's thread 0xafa40000 ready to run

应用程序崩溃了,它只发生在 Android 6.0 Marshmallow 上,所有其他平台都可以正常工作。 在 android manifest 我已经添加了这个代码部分:

   <uses-permission android:name="android.permission.RECORD_AUDIO" android:maxSdkVersion="1" />  

在 Unity 上,我添加了以下代码:(我知道它适用于 web 播放器,但我想,这是怎么回事)

private IEnumerator mobilePremissions()
{
    yield return Application.RequestUserAuthorization(UserAuthorization.Microphone | UserAuthorization.Microphone);
    if (Application.HasUserAuthorization(UserAuthorization.WebCam | UserAuthorization.Microphone)) {
        Debug.Log ("Great");
        ViewerSwitchSence.Recording();
    } else {
        Debug.Log ("Crapping");
    }
}

我不知道为什么 Unity 在点击时不提升用户授权,这就是 Android 6.0 Marshmallow 所期望的。

非常感谢您的帮助。

【问题讨论】:

    标签: c# android unity3d microphone android-6.0-marshmallow


    【解决方案1】:

    好的,解决了这个问题。 如果您遇到同样的问题,请更新到最新的 Unity,但是,如果您已将 android.permission.RECORD_AUDIO 添加到清单中。

    确保从清单中删除此行,它将与 Unity 自行添加的权限发生冲突,并导致应用程序在麦克风请求时崩溃。

    希望它可以帮助某人。

    【讨论】:

    • 您能告诉我们具体是哪个 Unity 版本吗?以及最小和目标 SDK。
    • 目前正在开发版本 5.3.1f1 (cc9cbbcc37b4) 个人 2015 年 12 月 17 日星期四 13:01:19 GMT 分支:5.3/release。最小 SDK 目标:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多