1

テストの背景: Xcode: Xcode8 beta6 iPhone: iOS10 beta6 言語: object-c

アプリで startAudioCall sirikit を使用して、アプリの呼び出しをテストしました。ただし、sirikit はいくつかの状況で失敗します: その人の名前がローカルの連絡先のファースト ネームである場合、「Call firstname myApp」と言うと、siri は myApp を起動してこの連絡先の名前を正常に取得できます。ラストネーム、「ファーストネーム(またはファーストネームとラストネームの両方)myAppに電話して」と言うと、siriは電話を使用してこの人に電話をかけます(myAppではありません)

例: John が私の電話連絡先にいる場合、「John myApp に電話して」と言うと、myApp が開始され、この連絡先名が正常に取得されます。しかし、電話の連絡先にジョン・スミスがいて、「ジョン(またはジョン・スミス) myApp に電話して」と言った場合、siri は電話を使用してこの人に電話をかけます (myApp ではありません)。

- (void)resolveContactsForStartAudioCall:(INStartAudioCallIntent *)intent
                      withCompletion:(void (^)(NSArray<INPersonResolutionResult *> *resolutionResults))completion{
NSLog(@"maytest resolveContactsForStartAudioCall");


NSArray<INPerson *> *recipients = intent.contacts;

NSMutableArray<INPersonResolutionResult *> *resolutionResults = [NSMutableArray array];



if (recipients.count == 0) {

    completion(@[[INPersonResolutionResult needsValue]]);
    return;
}else if(recipients.count==1){
    [resolutionResults addObject:[INPersonResolutionResult successWithResolvedPerson:recipients.firstObject]];
}else if(recipients.count>1){
     [resolutionResults addObject:[INPersonResolutionResult disambiguationWithPeopleToDisambiguate:recipients]];
}else{
    [resolutionResults addObject:[INPersonResolutionResult unsupported]];

}
completion(resolutionResults); 
}

- (void)confirmStartAudioCall:(INStartAudioCallIntent *)intent
               completion:(void (^)(INStartAudioCallIntentResponse *response))completion{

NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INStartAudioCallIntent class])];
INStartAudioCallIntentResponse *response = [[INStartAudioCallIntentResponse alloc] initWithCode:INStartAudioCallIntentResponseCodeReady userActivity:userActivity];
completion(response);
}

- (void)handleStartAudioCall:(INStartAudioCallIntent *)intent
              completion:(void (^)(INStartAudioCallIntentResponse *response))completion{
NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([INStartAudioCallIntent class])];

INStartAudioCallIntentResponse *response = [[INStartAudioCallIntentResponse alloc] initWithCode:INStartAudioCallIntentResponseCodeContinueInApp userActivity:userActivity];
completion(response);
}

そして、オーディオコールに関する私のコードは次のとおりです。誰でも助けることができますか?ありがとう

4

1 に答える 1