标签: siri

我们可以在IOS模拟器中测试SIRIKit扩展:

我正在尝试使用sirikit开发应用程序扩展,但是当我尝试在模拟器iphone 7plus上运行它时,它会给出以下错误: -

SpringBoard无法为请求提供服务.

任何人都可以告诉我IOS模拟器是否支持SIRIKit扩展!

ios ios-simulator siri

13
推荐指数
4
解决办法
4227
查看次数

Siri Custom Intent:"快捷方式"应用程序中的变量

我创建了一个自定义Siri意图.它在"快捷方式"应用程序中可见.但是,它允许我仅从捐赠的快捷方式中选择,而无需指定自己的参数.

是否可以使用"快捷方式"应用程序创建支持提供参数的Siri Intent?

我的意图配置

在此输入图像描述

结果如何:

在此输入图像描述

我想要实现的目标

请注意,如何预先填写字段(例如Item字段).我想有相同的选择phoneNumber.

在此输入图像描述

ios siri swift sirikit sirishortcuts

13
推荐指数
1
解决办法
624
查看次数

Siri Dictation Bypasses UITextView:shouldChangeTextInRange Delegate

我用来(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)对每个输入的字符进行实时正则表达式验证UITextView.

这很好用,甚至可以处理可能包含无效字符的粘贴文本.

但是,Siri似乎并不关心这些事情并将其直接转发(void)textViewDidChange:(UITextView *)theTextView,绕过shouldChangeTextInRange代表并避免验证检查.

这对我来说似乎是一个安全漏洞,并打破了每个其他输入通道所遵循的API流程.

有关如何让Siri Dictation遵守呼叫的任何想法shouldChangeTextInRange

objective-c uitextview siri dictation

12
推荐指数
1
解决办法
1037
查看次数

Siri Integration for payment issue

在我的申请中,我只支持欧元和美元货币.因此,当用户尝试使用Siri向GBP发送付款时,我要求他在EUR和USD之间进行选择.

之后在屏幕上我看到:

  • 100美元
  • 100欧元

如果我选择100美元intent.currencyAmount!.currencyCode我总是有英镑(但用户选择美元).这很奇怪.

这是我的代码:

func resolveCurrencyAmount(forSendPayment intent: INSendPaymentIntent, with completion: @escaping (INCurrencyAmountResolutionResult) -> Void) {
        if let currencyAmount = intent.currencyAmount { // need to check if we have proper value
            if let amount = currencyAmount.amount {

                if amount.doubleValue == 0 { // wrong amount
                    completion(INCurrencyAmountResolutionResult.unsupported())
                    return
                }

                if let currencyCode = currencyAmount.currencyCode {
                    if let _ = EnumCurrency(rawValue: currencyCode) { // we found currency code that we know
                        completion(INCurrencyAmountResolutionResult.success(with: INCurrencyAmount(amount: NSDecimalNumber(value: abs(amount.doubleValue)), currencyCode: currencyCode)))
                        return
                    } …
Run Code Online (Sandbox Code Playgroud)

ios siri swift ios10 sirikit

12
推荐指数
1
解决办法
982
查看次数

无效的Siri支持 - 示例短语"此处的示例短语"未被归类为INCreateTaskListIntent意图

我正在尝试为iOS 11实现SiriKit,特别是使用列表和注释.我的AppIntentVocabulary.plist如下所示.

AppName取代了我App的真实姓名.

https://gist.github.com/mitch2be/6e49d5e07e567bbc4d049bc565dad473

每次我提交时,我都会收到来自iTunesConnect的电子邮件,说明:

Siri支持无效 - 示例短语"在AppName中创建新的购物清单".未被归类为INCreateTaskListIntent意图

Siri支持无效 - 示例短语"将mik添加到AppName中的杂货清单".未被归类为INAddTasksIntent意图

对于其他剩余的示例短语,还有更多无效的Siri支持消息.

有没有人知道为什么会这样?是否需要在其他地方实施示例短语?

AppIntentVocabulary.plist具有主应用程序的目标成员身份.我还将它添加到SiriKit扩展并尝试了但是这也没有用.

任何想法或解决方案将是最受欢迎的.

ios siri sirikit ios11

10
推荐指数
0
解决办法
641
查看次数

语音识别在iOS上出错

我正在研究iOS上的语音识别,但每次调用方法[_recognitionRequest endAudio]时,它总是在recognitionTaskWithRequest中出错:消息在底部.

-(void) stopRecording {
if (_disableSpeechSW == YES) {
    return;
}
if (_isAuthorization == NO) {
    return;
}

NSLog(@"stopRecording");

if ([_audioEngine isRunning]) {
    [_audioEngine stop];
    [_recognitionRequest endAudio];
}
Run Code Online (Sandbox Code Playgroud)

}

-(void) startRecording {
..........
[_speechRecognizer recognitionTaskWithRequest:_recognitionRequest
                   resultHandler:^(SFSpeechRecognitionResult *result,NSError *error){
  if (error != nil ) {
     NSLog(@"%@",[error description]);
  }
  else {
   ..........
  }
}];}
Run Code Online (Sandbox Code Playgroud)

[实用程序] + [AFAggregator logDictationFailedWithError:]错误域= kAFAssistantErrorDomain代码= 203"重试"UserInfo = {NSLocalizedDescription =重试,NSUnderlyingError = 0x17424c690 {错误域= SiriSpeechErrorDomain代码= 1"(null)"}}

speech-recognition objective-c ios siri sfspeechrecognizer

8
推荐指数
2
解决办法
6849
查看次数

如何在快捷方式应用程序中自定义Siri快捷方式

如何在快捷方式应用程序中自定义Siri快捷方式?

这个问题与新的iOS 12功能有关:Siri Shortcuts.用户可以使用Siri快捷方式通过自定义语音短语或新的iOS 12"快捷方式"应用程序触发应用程序特定功能(由开发人员创建).快捷方式应用程序允许您通过组合应用程序的快捷方式来创建工作流程,类似于Mac上的Automator应用程序.

在我们的应用程序中,我们实现了特定功能的快捷方式 这意味着用户可以通过语音或快捷方式应用程序触发此快捷方式来执行此功能.我们的快捷方式在iOS的快捷方式应用程序中通过向Siri捐赠我们的意图来"自动".

问题是,如何自定义此快捷方式?默认情况下,我们的快捷方式如下所示:

在此输入图像描述

如您所见,快捷方式仅显示标签传输"X"到"X",并且不允许您配置此快捷方式.当我将我的快捷方式与其他应用程序的其他快捷方式进行比较时,我发现这些快捷方式是可配置的,就像来自应用程序"Giphy"的快捷方式:

在此输入图像描述

此快捷方式允许您配置"搜索","显示GIF选择器"和"选择多个".还要注意屏幕底部的变量,例如Ask When Run变量.

我找不到有关如何配置快捷方式的任何文档.在Apple(SoupChef)的示例代码中,它们也不提供可配置的快捷方式.

xcode siri swift sirikit sirishortcuts

8
推荐指数
1
解决办法
354
查看次数

iOS 6 Siri API在哪里?

我读了很多新闻稿声称Apple会在iOS上提供Siri的API,但是现在Siri已经发布了,我在developer.apple.com上找不到任何关于这个API的文档.

iphone api ios siri

7
推荐指数
1
解决办法
9453
查看次数

WatchKit:WatchKit应用程序中的语音到文本转换

任何人都可以帮我提供一个示例代码,用于在Apple Watchkit应用程序中添加Speech to Text转换功能.

iphone siri ios8 watchkit

6
推荐指数
2
解决办法
4789
查看次数

iOS Swift 5 - 如何实现 Siri VoIP 命令“使用示例应用程序呼叫人员”支持,而无需添加快捷方式?

目标

我希望能够通过 Siri 说“使用 Next 应用程序呼叫 Emily”来触发 VoIP 呼叫,而无需添加快捷方式。

Emily 是我添加到我的联系人中的联系人,其中包含我自己的电话号码。我在日常司机手机上测试了示例应用程序,因此它有一张用于通话的 SIM 卡。

问题细分

  • 1 种场景有效:如果应用程序的捆绑(显示)名称与我所说的相同,例如“下一步”,Siri 将正确打开应用程序并启动呼叫代码,太棒了!
  • 但是,应用程序包名称必须保留 Nextext。
  • 如果我启动应用程序名称为 Nexxt 的应用程序并说“使用 Next 应用程序呼叫 Emily”,Siri 将回复:

我在你的通讯录中没有看到“Emily”。

  • 我添加了替代应用程序名称,即 CFBundleSpokenName,又名 Accessibility Bundle Name 和 INAlternativeAppNames:
    • 下一个
  • 替代应用程序名称有效!如果我说“打开下一个应用程序”、“打开狗应用程序”或“打开猫应用程序”,即使实际应用程序名称是 Nexxt,该应用程序也会打开。
  • 但是,如果我说“使用 Dog 应用程序呼叫 Emily”,Siri 会回复:

我没有看到这样的应用程序。您需要下载一个。搜索应用商店

  • 我似乎无法让它实现我的特定目标。考虑到替代应用程序名称的工作原理,我认为我的“INStartCallIntent”实现中可能存在根本性错误或缺失。

请注意,如果您在更改显示名称时遇到问题。选择项目,更改显示名称,然后单击项目之外的位置(任何文件)并再次选择项目。运行应用程序,名称应该会更新。

代码

这是代码。如果我的显示名称是下一个,它适用于“使用下一个应用程序呼叫艾米丽”。如果我的显示名称是 Dog,它也适用于“使用 Dog 应用程序呼叫 Emily”。

该示例应用程序是用 SwiftUI 代码编写的,只需进行最少的设置即可测试 Siri 功能。

TestSiriSimple -> TestSiriSimpleIntents -> IntentHandler:

import Intents

class IntentHandler: INExtension {
    
    override func handler(for intent: …
Run Code Online (Sandbox Code Playgroud)

voip shortcut ios siri swift

6
推荐指数
1
解决办法
1048
查看次数