版本記錄
版本號(hào) | 時(shí)間 |
---|---|
V1.0 | 2018.09.10 |
前言
大家都知道隨著人工智能的發(fā)展章贞,會(huì)掀起來(lái)另外一個(gè)工業(yè)革命页响,而語(yǔ)音識(shí)別就是人工智能的初始階段,但是每個(gè)公司做的都不一樣鸟缕,涉及到一系列的語(yǔ)音的采集和算法實(shí)現(xiàn)晶框,蘋(píng)果的Siri就是業(yè)界語(yǔ)音識(shí)別的代表性的產(chǎn)品。接下來(lái)的幾篇我們就詳細(xì)解析一下SiriKit這個(gè)框架懂从。感興趣的可以看下面幾篇文章三妈。
1. SiriKit框架詳細(xì)解析(一)—— 基本概覽(一)
Overview
這一篇很好理解,依照蘋(píng)果對(duì)安全的重視莫绣,這種設(shè)計(jì)個(gè)人隱私的一定要申請(qǐng)權(quán)限的畴蒲,否則就會(huì)崩潰也無(wú)法進(jìn)行上架的。你看到這里可以想到申請(qǐng)麥克風(fēng)对室、相冊(cè)以及定位等權(quán)限了嗎模燥?
下面我們就開(kāi)始。
在用戶授權(quán)他們執(zhí)行此操作之前掩宜,Siri和Maps無(wú)法與您的Intents應(yīng)用擴(kuò)展程序進(jìn)行交互蔫骂。您從iOS應(yīng)用程序請(qǐng)求授權(quán),而不是您的擴(kuò)展程序牺汤。用戶授予的權(quán)限適用于您的iOS應(yīng)用和watchOS應(yīng)用辽旋。
要求授權(quán):
1) Enable the Siri capability - 啟用S??iri功能。您的iOS應(yīng)用或WatchKit擴(kuò)展必須啟用Siri功能才能成功授權(quán)檐迟。有關(guān)如何啟用Siri功能的信息补胚,請(qǐng)參閱Creating an Intents App Extension。
2) Configure your Info.plist file - 配置Info.plist文件追迟。在您的iOS應(yīng)用程序的
Info.plist
文件中包含NSSiriUsageDescription
鍵溶其。此鍵的值是一個(gè)字符串,用于描述您的應(yīng)用與SiriKit共享的信息敦间。例如瓶逃,鍛煉應(yīng)用程序可能會(huì)將值設(shè)置為字符串“鍛煉信息將發(fā)送給Siri”需要包含此key
。3) Request authorization from your iOS app - 從您的iOS應(yīng)用程序請(qǐng)求授權(quán)廓块。在iOS應(yīng)用執(zhí)行期間的某個(gè)時(shí)刻調(diào)用INPreferences的requestSiriAuthorization(_:)類方法厢绝。
當(dāng)您的應(yīng)用程序的授權(quán)狀態(tài)未確定時(shí),從您的iOS應(yīng)用程序調(diào)用requestSiriAuthorization(_:)方法會(huì)導(dǎo)致系統(tǒng)提示用戶授權(quán)您的應(yīng)用程序带猴。alert
彈窗括您在應(yīng)用的Info.plist
文件的NSSiriUsageDescription
鍵中提供的使用說(shuō)明字符串昔汉。用戶可以批準(zhǔn)或拒絕您的應(yīng)用程序的授權(quán)請(qǐng)求,并可以稍后在“設(shè)置”應(yīng)用中更改您應(yīng)用的授權(quán)狀態(tài)浓利。系統(tǒng)會(huì)記住您的應(yīng)用程序的授權(quán)狀態(tài)挤庇,以便后續(xù)調(diào)用requestSiriAuthorization(_:)方法不會(huì)再次提示用戶。
注意:當(dāng)用戶首次嘗試使用
Intent
擴(kuò)展時(shí)贷掖,Siri和Maps可能會(huì)協(xié)助您對(duì)其進(jìn)行授權(quán)嫡秕。 具體而言,如果用戶與您的擴(kuò)展程序進(jìn)行互動(dòng)且其授權(quán)狀態(tài)尚未確定苹威,則地圖會(huì)代表您的擴(kuò)展程序自動(dòng)請(qǐng)求授權(quán)昆咽。
INPreferences類
繼承自NSObject,該類用于使用SiriKit的偏好和授權(quán)牙甫。
使用INPreferences
的類方法來(lái)執(zhí)行與使用SiriKit相關(guān)的任務(wù)掷酗。 iOS應(yīng)用程序必須在Siri之前請(qǐng)求授權(quán)使用SiriKit,或者允許地圖調(diào)用其Intents擴(kuò)展來(lái)處理意圖窟哺。 要請(qǐng)求授權(quán)泻轰,請(qǐng)?jiān)趹?yīng)用程序執(zhí)行期間的某個(gè)時(shí)刻調(diào)用requestSiriAuthorization:
方法。 第一次調(diào)用此方法時(shí)且轨,系統(tǒng)會(huì)提示用戶授予或拒絕您的應(yīng)用程序的授權(quán)浮声。 用戶可以稍后在系統(tǒng)設(shè)置中更改應(yīng)用程序的授權(quán)設(shè)置。 您可以使用siriAuthorizationStatus
方法獲取應(yīng)用程序的當(dāng)前授權(quán)狀態(tài)旋奢。
1. Managing the App’s Authorization - 管理應(yīng)用程序的授權(quán)
-
- 請(qǐng)求使用Siri服務(wù)的授權(quán)泳挥。
-
- 返回當(dāng)前應(yīng)用程序的授權(quán)狀態(tài)。
-
- 指示
Intents extension
授權(quán)狀態(tài)的常數(shù)至朗。具體枚舉值如下所示屉符。
- 指示
typedef enum INSiriAuthorizationStatus : NSInteger {
INSiriAuthorizationStatusNotDetermined = 0,
INSiriAuthorizationStatusRestricted,
INSiriAuthorizationStatusDenied,
INSiriAuthorizationStatusAuthorized
} INSiriAuthorizationStatus;
2. Getting the Siri Language - 獲取Siri語(yǔ)言
-
+ siriLanguageCode
- 返回Siri用于與用戶通信的語(yǔ)言。
該方法返回的是一個(gè)字符串锹引。
+ (NSString *)siriLanguageCode;
標(biāo)識(shí)語(yǔ)言的語(yǔ)言環(huán)境ID以及任何可選的區(qū)域或腳本信息矗钟。 區(qū)域設(shè)置ID的示例是“en”
,“en_GB”
嫌变,“zh-Hans”
和“zh-Hans_HK”
真仲。 有關(guān)區(qū)域設(shè)置ID結(jié)構(gòu)的詳細(xì)信息,請(qǐng)參閱Internationalization and Localization Guide初澎。
此屬性僅供參考秸应。 Siri的輸入語(yǔ)言可能與用戶設(shè)備上顯示的語(yǔ)言不同。 但是碑宴,您的應(yīng)用和Intents擴(kuò)展應(yīng)始終使用用戶的首選語(yǔ)言指定內(nèi)容软啼,如當(dāng)前設(shè)備的語(yǔ)言設(shè)置所示。
后記
本篇主要講述了請(qǐng)求授權(quán)使用SiriKit和INPreferences類延柠,感興趣的給個(gè)贊或者關(guān)注~~~