【发布时间】: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