2015-12-09 68 views
0

我的Android 6.0 Marshmallow出现问题。当我尝试使用麦克风并录制用户输入时,出现以下错误。在Unity 6上记录基于Unity的音频权限

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清单我已将此代码的一部分:

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

和团结,我添加以下代码:(我知道这对webplayers但我想,黑客什么的)

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的预期。

感谢您的帮助。

回答

1

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

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

希望它可以帮助别人。

+0

你能告诉我们完全的Unity版本吗?以及最小和目标SDK请。 – JohnTube

+0

目前在版本5.3.1f1(cc9cbbcc37b4)上工作个人 Thu,17 Dec 2015 13:01:19 GMT 分支:5.3 /发布。 最小的SDK目标: