I'm a fairly new Android developer working on an app that I would like to have speak text that the app supplies. I have found several examples on using the Text to Speech feature on Android phones, such as this one)
and I've been able to get them to work much of the time, but they don't consistently work without problems on the Eclipse Emulator or the HTC phone I use to test. Problems include the speech working sometimes and sometimes not, or the app causing the phone to go to google play to download "SpeechSynthesis Data Installer" even though the phone has already demonstrated the ability to do text to speech and even though the store says that the item is already installed on the phone. I won't go into all the examples of issues but there are several more that I have come across in a few hours.
My question is has anyone put the Text to Speech feature in an app put in the marketplace or on multiple phones and found it to be relatively reliable, simple and straightforward, or is it an unreliable and inconsistent feature no matter how well it is implemented? Thanks.
Related
I am currently using a Pixel 4 API 30 as an avd in android studio.
I want to activate text to speech in the virtual device's settings, but there does not seem to be a direct way to do this. How can I activate it?
Here's a photo of the settings menu. As you can see, although you can test the text to speech output, I haven't found a way to use it.
Text to speech is different to Talkback. There is a question on this here
Text to speech is a voice synthesis tool that can be used by apps to convert text to speech. One of the Google provided apps called TalkBack uses this as a screen reader for those who may find it difficult to read or see the screen.
I think what you want to activate is TalkBack as a screen reader - this means if you wanted to do it via the emulator you would have to install TalkBack on your emulator. The answers here may be able to help you, either by downloading the APK from the store or by just opening Google Play from the emulator and installing it. I recommend you go through the tutorial before diving in, as TalkBack uses gestures to navigate. You might not have success as swipes tend to have "levels" (a programmatic adb swipe is different from a swipe with a finger physically on the screen for some odd reason) when it comes to accessibility.
I have found it much easier to test accessibility on real devices, as adb controls are limited. I am trying to improve the situation with my code, but it's slow going and TalkBack is far from perfect.
I have developed a Ionic app that uses Android Speech Recognition API via a Cordova plug-in. It worked fine a few days back, but one day it stopped working. I did not change any source code. Sometimes it immediately returns me an error: ERROR_NO_MATCH. Sometimes it worked for one second, gave me one or two words and stopped listening abruptly, regardless that I was still talking to it.
I reflected what has happened in recent days that may have caused problem.
Changes to Google speech recognition server? It is not likely. I did not
find anything about it from the web. But a weird thing is: I installed some other simple voice-to-text apps, they all seem to terminate listening prematurely.
Changes to my computer? I have re-imaged my hard drive and reinstalled everything.
Changes to my mobile phone? Maybe some auto update has affected the voice recognition part.
Anyone has the same problem? Any help is appreciated.
Edit 08/09/2016
What I have tried:
Factory reset of my mobile phone
Building the app with different Android API levels
Uninstalling all updates to Google App, and disabling it
However, none worked.
I've got an application with Exoplayer. Works perfectly.
A request came to implement the "Cast to TV" (like the Apple TV Icon you get at the bottom when an Apple TV is present in the same network)
I've been trying to read up on this for Android, though seem to get lost be different information by different contradictions.
Some talk about a sender and receiver app, but i'm pretty sure this would not be needed as I have seen other apps where i can just push to the tv without having to install other software on the tv or whatever. (I understand that these TV's must comply to some certain standard)
Surely there is a way to:
Put a cast button at the top
Press it and show a selection screen of devices available
Then tell the player to "cast to tv"
(simply said of course)
Does anyone know of clear information and/or sample?
Please don't link to the Android pages, because that's one of the reasons I got lost in this matter.
https://developer.android.com/guide/topics/media/mediarouter.html
has no mention of needing another app.
What is allShare? Only for samsung or is there a universal standard?
Thank you to the person who will take the time to explain and provide some insight to where to start.
I'm having trouble with an app I published that sends user notifications.
The notifications are called from a background service that checks for a boolean that gets saved to SharedPreferences when the user selects to enable notifications or not.
However, I've had some users on the Galaxy S5s say that they can't turn them off (I test with nexus devs and have beta testers on m8, etc). How do I address this issue?
What is the strategy for solving problems that arise only for specific devices?
IMO, Android kinda sucks in that regard. There is absolutely no way to guarantee that if one piece of code that works on one device works on another one. Since Android is open source, manufacturers usually modify the firmware to make it kinda customized. However, they sometimes change things that will affect performance of a single function.
It is even worse! Your code might work on S4 with Android JellyBean, but not work with the same device Android Kitkat. Anyways, no - there is no way to debug without the actual device. However, you can log different events in your code and use an analytic service (like Google Analytics) and send the data to your database to study and figure out the problem. This is the method that I typically use in such cases.
If the problem is that the app crashes on some device. It is even easier. Users need to press on the "send crash data" button - so you can study the log on your developer account.
I've been developing a mobile app for both iOS and Android. Due to time/budget constraints, we initially selected PhoneGap/Cordova as mobile app framework so we could write once and deploy to both platforms.
This plan has worked fine for iOS, but we're finding that Android's browser/engine is kind-of a piece of garbage (to put it nicely). Every time we add a new feature, we find one more thing that the Android browser doesn't support, or only partially supports, or fully supports but will randomly fail from time to time, etc. Even once we code around the Android issues and get things working smoothly, test it on multiple devices/versions, and deploy a new app to the Android market, we immediately start getting emails and reports from customers who can't get the app to work on their device. We have them uninstall/reinstall, reboot their phone to clear the memory, etc., and their device still consistently fails (and by "fail", I mean it typically just freezes and/or won't respond to touch input - it usually doesn't crash, or anything). The app works fine for most people, but there are still quite a few devices that inexplicably fail.
I don't mean for this to be a rant, I'm trying to analyze whether the Android+PhoneGap path is the correct path for us. Specifically, I'd like to find out the following:
Are there people out there having success with an Android+PhoneGap app? or is Android+PhoneGap always going to be a problem on certain devices?
Am I likely to have more luck with a native Android app (I've never attempted one)? Or are multiple devices/versions always a problem on Android, even with a Native app?
1) Yes. There are are good apps which are based on Phonegap and works well in all devices.
2) It depends on what features of the Android you are going to use. Few versions that does not support some features that's available only to new version.
BTW, what is the minimum required version that you have selected for your app? I assume you are developing the app with Android as base version.
When creating a new Android project, you have to set the minimum required platform version. If you set something higher and use the app in a lower version which does not support the feature, results are going to be different.
After having worked with Android+Cordova for some time now, I have the following suggestions/comments for anyone thinking of going that direction.
Consider using Sencha Touch, or jQuery Mobile, or another mobile framework that has already coded around the Android-browser issues (which there are a LOT of). Consider not straying too far from the default styling that come with those frameworks. Simply styling a normal web page to look like a mobile app is a constant headache to get working on multiple versions of the stock Android browser.
Although the stock Android browser is garbage, Mobile Chrome is pretty nice. In Android 4.4, the Chrome engine becomes the default engine used by a webview of an Android app. If you don't like Sencha or jQuery Mobile or the like, you could hold off and just use a mobile web site for a while until Android 4.3 and below become insignificant. It's not hard to get things working on Mobile Chrome.
Even without Sencha/JQM, you can still muscle your way around the stock browser issues, but it's almost as frustrating as developing for IE6. Okay, maybe not that bad… but close.
I've started experimenting some with a native Android app, and, so far, it seems like less of a headache than building an app with Android+Cordova+lackOfSenchaOrJQMorTheLike. The things I've experimented with work pretty consistently among different Android versions. But I don't have much experience there, so I can't comment too much on a native Android app.