开始玩SiriKit。我想测试权限作为第一步,所以我设置我的应用程序使用Siri,得到了预期的提示,但有意拒绝了使用Siri的请求。正如所料,状态返回“未授权”。
然而,随后尝试通过更改设置中的切换来重新启用Siri似乎对重新启用应用程序的Siri没有任何影响。
这是我用来检查的代码......
override func viewDidLoad()
{
super.viewDidLoad()
// Prompt for Siri support
INPreferences.requestSiriAuthorization
{
status in
switch status
{
case .notDetermined: print("Not yet determined.")
case .restricted: print("Restricted. The app is not authorized to use Siri services.")
case .denied: print("Not authorized. The user explicitly denied authorization for this app.")
case .authorized: print("Authorized. Siri is enabled and your app is authorized to interact with it.")
}
}
}
如上所述,我认为答案就像进入设置应用程序并在那里启用Siri对该应用程序的支持一样简单,但有趣的是,应用程序似乎已经获得了访问权限(交换机显示为'on')即使我通过提示拒绝了它。
更令人困惑的是,即使当我关闭那个开关,然后再打开,希望“重置”它可以说,我的应用程序仍然,并且总是报告Siri不受支持。
即使重写Siri开关,或重置模拟器的内容和设置,然后重新安装应用程序,我仍然没有得到提示,这意味着它仍然记得我的选择,并且它报告它仍然没有被授权。
那么在Siri支持方面,如何将他们的初始选择从No改为Yes?
这可能是模拟器始终报告“未经授权”的问题,这必须在实际设备上进行测试吗?
一定是模拟器中的一个小故障。我在设置或代码中没有做任何事情,甚至重置模拟器完全改变了它。但是,我更改了包ID,一切都按预期开始工作。我甚至改回来了,现在旧的正在按预期工作。
答案 0 :(得分:1)