The creation of a TextToSpeech object causes the TTS service to
start, and the initialization listener to be called when the
service is connected. But the listener is never called when
the service binding failed to be notified of this error.
The fix consists in checking the result of the bind to service
operation, and notify the listener in case of an error.
More log was added in case speak() and synthesizeToFile() are
called but the service is not known to have started.
Change-Id: I7dcc1fa44be31fee3177ec6215fca3306377b934
reviewed for Froyo, but we didn't want to make it
public then because it wasn't until our first
Market release of Voice Search that the APIs would
be in use by our app.
http://b/3135351
Change-Id: I49053717cac08e3976c22e3a105139b6755aadb8
interfere with one another.
Root cause was not caching all the params that were needed.
This change fixes that bug as well as related bugs for remembering
the default engine and for making sure that the right engine is
loaded when checking for language availability.
Change-Id: I2a76da8faec8112036e68d27539db444c53a1509
This fix is part of addressing bug #2548048
Making it possible to determine which TTS engine is currently set
as the default by the user.
Change-Id: Ifa422f43a33498b94d96811078c0794d64668357
bug fix for: http://b/issue?id=2522063
RecognitionManager does not throw an exception in startListening() was called without the preceding setListener()
Change-Id: I8e303d0c53c7593fbf1dc7033b2c0f82eebfb081
It is a prt of the following bug fix: http://b/issue?id=2478548
The CL adds the ability to pass HTTP headers to the Browser
Change-Id: Ibf0ad8f678fc5aeef4ac098e5dfbcaed9ada8600
This is the framework part, moving classes around so the framework
no longer needs to link to android-common. Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
* Allow activities satisfying RecognizerIntent.ACTION_WEB_SEARCH to
point to the class name of a broadcast receiver which returns details
about the voice search implementation in an ordered broadcast response.
Provide a convenience method for getting the intent to fire for this
info. This can be used to get the current language preference and the
list of supported languages, and is extensible for future uses.
* When creating a RecognitionManager, allow the caller to optionally specify
a specific component of a voice recognition service on the device that they
want to use. This way, an app can still use its own service through
RecognitionManager, even if it's not the one chosen the user in settings.
to be used by anyone implementing a voice recognition service. Also define
a new <recognition-service> styleable to be used in such service's metadata
xml.
Still to do: Change VoiceSearch's GoogleRecognitionService to respond to this
intent, and actually use this intent instead of ACTION_RECOGNIZE_SPEECH here
in RecognitionService.
for voice recognition on the device. Right now this just queries
the package manager at boot and finds the (hopefully) single
available recognizer.
TODO: Add an attribute to let recognition services expose a settings
activity, and expose the settings activity of the chosen recognition
service in the system settings for voice input & output.
Reinstalling VoiceIME created a problem because RecognitionService expected the first command to be setListener, in this version, such command is added
if the connection is broken.
Change-Id: Ia102fc1843053e2bdd330b380c2685a1227081b2
Specifically point out that startActivity() is not supported for
ACTION_RECOGNIZE_SPEECH, and make the documentation on EXTRA_RESULTS more
clear to point out that this is a part of the results, not the request.
from system settings. For now it'll just be triggered from within the
voice search app if you choose the settings menu item.
Need to unhide this before we can be fully unbundled for voice search.
A race condition is encountered when an application invokes shutdown()
on its TextToSpeech object while is has speak() requests still running.
Since the TTS service destructor releases the synthesizer resources and
sets the corresponding synth reference to null, an NPE was observed.
The fix consists in catching NPEs whenever the sNativeSynth object is
accessed, and return the matching error for the call.
This change is a "low risk" version of the fix for bug 2025765i (same
issue) which was reverted because it was higher risk than this CL:
it affected the logic of each call to sNativeSynth. This CL only sets
an error code when an NPE is fired because sNativeSynth is null.