我正在编写一个需要高级别安全性的应用。该应用程序将部署在Droid X设备上。我无法允许用户访问软键盘的语音到文本功能(通过触摸麦克风图标),因为音频和文本无法通过互联网发送。有一种方法可以通过语言和语言在“设置”中禁用此功能。键盘 - >多点触控键盘 - >然后取消选中Voice dictation复选框。取消选中此复选框后,将禁用软键盘上的麦克风图标。我需要的是能够在我的应用程序中验证当用户处于我的应用程序中的任何活动时,此功能仍然关闭,其中有一个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!");
}
答案 0 :(得分:0)
所以这有两个方面。首先,它似乎没有可靠/干净的方式来以编程方式确定它是否被禁用。一般来说,语音输入的设置方式应该与输入的输入无法区分:在结构上你不应该分辨出一个或另一个。您上面的代码会检查活动是否缺失:禁用它不会删除活动。
另一方面:查看InputMethodManager的getCurrentInputMethodSubtype:这似乎可以indicate the input mode。这可能会做你想要的,但不确定。
让我知道。