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清单中我已经添加了这个代码部分:
<uses-permission android:name="android.permission.RECORD_AUDIO" android:maxSdkVersion="1" />
在Unity上我添加了以下代码:(我知道它对于网络播放器而且我知道,这是什么黑客攻击)
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的预期结果。
感谢您的帮助。
答案 0 :(得分:1)
好的,解决了这个问题。
如果您遇到同样的问题,请更新到最新的Unity,但是,如果您已将android.permission.RECORD_AUDIO
添加到清单中。
确保从清单中删除此行,它将发生冲突,Unity自我添加权限并导致应用程序在麦克风请求时崩溃。
希望它有所帮助。