2011-07-15 103 views
0

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

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!"); 
} 

回答

0

所以有這兩方面。首先,它看起來沒有一種可靠的/乾淨的方式來以編程方式確定它是否被禁用。一般而言,語音輸入的設置方式應與輸入輸入無法區分:在結構上,您不應該能夠區分其中的一種。上面的代碼檢查活動是否丟失:禁用它不會刪除活動。

另一方面:看看InputMethodManagergetCurrentInputMethodSubtype:這似乎能夠indicate the input mode。這可能會做你想要的,但不知道。

讓我知道。

相關問題