在 C# 中,我在请求 Xamarin 语音识别权限时遇到错误 Android
In C#, I am getting an error when requesting permission for speech recognition Xamarin Android
所以我正在使用 Plugin.SpeechRecognition Nuget 包并遵循在线的确切代码但它不起作用。
我尝试添加 "Plugin.Permissions" Nuget 包,但没有帮助,我尝试用谷歌搜索这个问题,但没有人遇到这个问题,它似乎对每个人都适用。我也尝试删除 "await" 关键字,它只是说
Operator '==' cannot be applied to operands of type 'IObservable' and 'bool'
这是我的代码:
private async void GetSpeechPermission()
{
var granted = await CrossSpeechRecognition.Current.RequestPermission();
if (granted == true)
{
// go!
}
}
所以应该发生的是没有错误,代码应该 运行 没问题,但是代码行
await CrossSpeechRecognition.Current.RequestPermission();
有红色下划线表示
IObservable' does not contain a definition for 'GetAwaiter' and no extension method 'GetAwaiter' accepting a first argument of type 'IObservable' could be found (are you missing a using directive or an assembly reference?)
当我使用插件创建者从此处提供的确切代码时 https://github.com/aritchie/speechrecognition
非常感谢任何帮助!!
解决这个问题的方法是添加
using System.Reactive.Linq
在代码的使用部分,而不是使用 bool 值作为插件的代码示例建议,而是在 if 语句中,将 "granted" 变量转换为字符串,然后检查"Available", 代码:
private async void GetSpeechPermission()
{
var granted = await CrossSpeechRecognition.Current.RequestPermission();
if (granted.ToString() == "Available")
{
//GO
}
}
希望这对某些人有所帮助! :D
所以我正在使用 Plugin.SpeechRecognition Nuget 包并遵循在线的确切代码但它不起作用。
我尝试添加 "Plugin.Permissions" Nuget 包,但没有帮助,我尝试用谷歌搜索这个问题,但没有人遇到这个问题,它似乎对每个人都适用。我也尝试删除 "await" 关键字,它只是说
Operator '==' cannot be applied to operands of type 'IObservable' and 'bool'
这是我的代码:
private async void GetSpeechPermission()
{
var granted = await CrossSpeechRecognition.Current.RequestPermission();
if (granted == true)
{
// go!
}
}
所以应该发生的是没有错误,代码应该 运行 没问题,但是代码行
await CrossSpeechRecognition.Current.RequestPermission();
有红色下划线表示
IObservable' does not contain a definition for 'GetAwaiter' and no extension method 'GetAwaiter' accepting a first argument of type 'IObservable' could be found (are you missing a using directive or an assembly reference?)
当我使用插件创建者从此处提供的确切代码时 https://github.com/aritchie/speechrecognition
非常感谢任何帮助!!
解决这个问题的方法是添加
using System.Reactive.Linq
在代码的使用部分,而不是使用 bool 值作为插件的代码示例建议,而是在 if 语句中,将 "granted" 变量转换为字符串,然后检查"Available", 代码:
private async void GetSpeechPermission()
{
var granted = await CrossSpeechRecognition.Current.RequestPermission();
if (granted.ToString() == "Available")
{
//GO
}
}
希望这对某些人有所帮助! :D