簡體   English   中英

android 以編程方式確定是否啟用了軟鍵盤上的語音聽寫

[英]android determine programmatically if voice dictation on soft keyboard is enabled

我正在編寫一個需要高度安全性的應用程序。 該應用程序將部署在 Droid X 設備上。 我不能允許用戶訪問軟鍵盤的語音到文本功能(通過觸摸麥克風圖標),因為無法通過互聯網發送音頻和文本。 有一種方法可以在設置中禁用此功能,方法是轉到語言和鍵盤 --> 多點觸控鍵盤 --> 然后取消選中語音聽寫復選框。 取消選中此復選框時,軟鍵盤上的麥克風圖標將被禁用。 我需要能夠在我的應用程序中驗證,當用戶在我的應用程序中進行任何活動時,此功能仍然關閉,其中有一個激活軟鍵盤的 TextView。 我已經嘗試了以下代碼,但它顯然沒有檢查我關閉的功能,因為即使禁用了語音聽寫,它仍然指示語音識別已打開。 是否有任何方式以編程方式專門檢查是否啟用了軟鍵盤的語音聽寫功能?

PackageManager pm = getPackageManager();<br>
List activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() != 0) {
voice recognition is turned on....NAUGHTY USER!
displayAlertMessage("You are naughty! You turned on voice recognition...No data entry will be allowed until this feature is turned off!");
}

所以這有兩個方面。 首先,看起來沒有可靠/干凈的方法來以編程方式確定它是否被禁用。 一般來說,語音輸入的設置方式應該與鍵入的輸入沒有區別:從結構上講,您不應該能夠區分兩者之間的區別。 您上面的代碼檢查是否缺少 Activity:禁用它不會刪除 Activity。

另一方面:查看InputMethodManagergetCurrentInputMethodSubtype :這似乎能夠指示輸入模式 這可能會做你想要的,但不確定。

讓我知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM