我正在写一个应用程序,需要一个高级别的安全。该应用程序将部署在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!");
}
发布于 2011-07-15 23:15:57
所以这有两个方面。首先,看起来没有一种可靠/干净的方法来以编程方式确定它是否被禁用。一般来说,语音输入的设置方式应该与键入的输入没有区别:从结构上讲,您不应该能够区分两者。上面的代码检查活动是否丢失:禁用它并不会删除活动。
另一方面:看看InputMethodManager的getCurrentInputMethodSubtype:这似乎能够indicate the input mode通。这可能会做你想做的事情,但不确定。
让我知道。
https://stackoverflow.com/questions/6709051
复制相似问题