Hey all,
So I'm running the new Google Experience Launcher (GEL) on CyanogenMod 10.1, but I'm a little annoyed by the lack of hotword support in UK English. If I set my language to English (US), hotword support DOES WORK. However, the voice recognition is less accurate (because I'm British) and the synthesised voice is American instead of British. Etc. Etc.
Now I see no good reason why Google can't enable hotword search for all languages. But they haven't. And rather than sit around feeling sad, I thought I'd fix it myself!
My plan is for an XPosed module to hook any neccesary methods, and supply modified code that enabled hotword searches.
I've begun reverse engineering the Google Search APK, where all the actual GEL code lives (from the 3.1.8 apk, available here)
I started out looking at the smali, but with something as complex as this, it soon got tiresome.
I'm now looking at the decompiled classes.dex I got out of dex2jar. However, despite finding multiple methods that reference hotword support, I can't seem to really trace it all the way back. The only condition I've found so far is a check as to whether the device is a low-ram device.
Just wondering if any veterans can point me in the right direction? This is a big hacking project for me, and I reckon, a great learning experience.
I'd host the decompiled code for convenience, but I expect that'd be considered rather naughty.
I also don't understand, why Google didn't support the hotword search for languages that work with voice search.
I'm very interested in this, if someone finds what to patch. I'm using german language
Also, why ONLY "Ok Google"?
We should have choices what the hot word should be.
Maybe I want to say "Hey, Slave" or "Computer!" (Star trek...lol...)
Nevertheless, good luck!
Related
I tried searching but no app for Android. (other than the one by google)
I think the google voice app by google inc is good. But i just wish it had a character count. It messes up the texts when you go over 160 and it sends it as multiple and they dont even arrive in the right order to the destination.
Also i wish it wouldn't hang every once in a while when i press send. It's like its trying to send but it just hangs there. wish they could fix that. A timer there would be nice. I have to stop it by using task manager.
And be able to use have themes.
If there is an app that could replace the current that would be cool. If anyone knows of one that works just post me a link. I tried searching but no success..
If there is a mod for the current google app that adds these features that would be awesome. OR if there is a good API to access the google voice. Or a project that is currently being worked on. That would be cool too.
I have been looking for one for a while too, I tired pairing it with text plus and textfree but recent changes have lead to no avail. I guess we can't complain to much for what we are getting but oon the hand textplus is an amazingly beautiful app and I just want that level of design and features from Google, I don't feel it's unfair to look for Google to pick up their game. If any one knows of anything please post, I feel like a lot of people would appreciate it.
AFAIK Google does not have any API's for Voice, which is why you can't find anyone aside from Google with an app. One thing a lot of people don't realized is that just because Google made Android open source, doesn't mean they have to make all the apps for it open source also.
Is there anywhere we can go to request the release of an API or at least a redesign of the app?
maybe either through API level, or by querying market info
Reason: i want to check on GB before I upgrade to ICS, which apps will not work.
don't know if relevant but it is for SGS II
Thx in advance
repost from here as nobody could really answer my question
can't believe I'm the only one with that issue
maybe an idea for a dev? would be willing to pay for that ;-)
I don't see why this can't be done:
-http://stackoverflow.com/questions/2695746/how-to-get-a-list-of-installed-android-applications-and-pick-one-to-run
-http://developer.android.com/reference/android/content/pm/PackageManager.html
-http://developer.android.com/reference/android/content/Context.html#getApplicationInfo()
I haven't thought through the problem just yet, but its seems to be doable. If you don't find an app soon, I will start working on a script that does it and, if successful, a proper, free software app. I am hoping the available methods won't require something as stupid as launching each app fully. But again, I haven't thought it through. Thanks for the idea btw.
EDIT:
Made a little more effort
https://groups.google.com/forum/?hl=en&fromgroups#!topic/android-developers/dXLACRIizKc
I will work on something this weekend and get back with y'all.
EDIT 2:
So it looks like I would need maxSdkVersion which I don't find in the API. Furthermore, it is strongly suggested that one not use maxSdkVersion when building an app so that doesn't sound all that useful. I have received another, much more complicated suggestion that may do what I want, but I will have to look hard at it. Looks like I'm going nowhere in my effort. Always open to suggestions. More to come later this weekend.
I'm not the sharpest tool in the shed, but I thought this was mostly a straightforward task using the API's exposure to AndroidManifest.xml. As per my previously posted link to an Android Developers discussion on the topic, my approach is dead in the water as far as I can see. I did try to find an answer though to the best of my limited ability. If anyone has or ever solves this problem (I consider it a problem) I would hope they find the this thread.
Thanks for the learning experience. I give up.
Most older apps will work fine on ICS, its pretty backwards compatible. If the app uses legacy menus the button will appear in the old lower left hand corner location instead of the upper right hand corner like apps written for ICS.
i'm no dev so bear with me if i write stupid stuff
one likely but not very promising sounding way might be to use android:targetSdkVersion as "As Android evolves with each new version, some behaviors and even appearances might change. However, if the API level of the platform is higher than the version declared by your app's targetSdkVersion, the system may enable compatibility behaviors to ensure that your app continues to work the way you expect. You can disable such compatibility behaviors by specifying targetSdkVersion to match the API level of the platform on which it's running. For example, setting this value to "11" or higher allows the system to apply a new default theme (Holo) to your app when running on Android 3.0 or higher and also disables screen compatibility mode when running on larger screens (because support for API level 11 implicitly supports larger screens)."
question though is how many apps actually use this?
However after having read this re android:maxSdkVersion "Warning: Declaring this attribute is not recommended. First, there is no need to set the attribute as means of blocking deployment of your application onto new versions of the Android platform as they are released. By design, new versions of the platform are fully backward-compatible. Your application should work properly on new versions, provided it uses only standard APIs and follows development best practices. Second, note that in some cases, declaring the attribute can result in your application being removed from users' devices after a system update to a higher API Level. Most devices on which your application is likely to be installed will receive periodic system updates over the air, so you should consider their effect on your application before setting this attribute." (taking from here) i now don't know how important my op is, but then why do all app devs release new versions "fixing things" for ICS?
One pretty significant example which actually currently will prevent my phone from getting ICS for now is that the subsonic app in the current version produces stuttering when playing audio while downloading (problem description here).
Isn't there any way to instead of searching the phone searching google play/android market instead?
Randi said:
maybe either through API level, or by querying market info
Reason: i want to check on GB before I upgrade to ICS, which apps will not work.
don't know if relevant but it is for SGS II
Thx in advance
repost from here as nobody could really answer my question
Click to expand...
Click to collapse
Here's a list of some working games/apps for ICS
Theoretically an Android app (or a combo of say App Engine and Android) could find your installed apps, seacrh Play for said apps and then scrape the page for relevant information. Doesn't sound to hard, but I didn't think about too hard either. Perhaps I will check out what useful info is on Play and how feasible scraping its markup will be. I will get back at y'all if I do.
So i did a quick Google search, however, i didn't find anything answering my question.
So when we think about android we (at least the ones who knows their thing) we know it is related to google. However, so far i know that Android is open source, correct me if i'm wrong, but that means that anyone CAN "cook" their own rom of android. (As soon in the numerous threads in android development). So far so good.
A while back i recall reading Google forbidding Cyanogenmod of including their multi-window feature (the one that allows you to surf the web and watch a youtube video simultaneously as seen in Samsung devices(Note 1/2 probably S4 and S3(?)). Anyways, my guess is they came to terms where they can agree or did Samsung ignore what google had to say? So to make a long story short, what are google's rights when it comes to android?
Can google, for instance, if it doesn't like what a manufacturer is adding to their phone be it a feature or a skin say that they only want manufacturers to stick to the AOSP look and if they do add their own skin they will be taken to court? Can they do this?
Just curious to understand how things are running here. I wanna know the rights google has and if it could have went to court with samsung because of using the multi window feature.
I think that you are asking a good question, to which I have no answer, but would be interested in following this.
Personally, I would like to see an Android ROM devoid of Google.
____________________
Sent from my HD2 JB-CM10 with XDA Premium
shadehh said:
So i did a quick Google search, however, i didn't find anything answering my question.
So when we think about android we (at least the ones who knows their thing) we know it is related to google. However, so far i know that Android is open source, correct me if i'm wrong, but that means that anyone CAN "cook" their own rom of android. (As soon in the numerous threads in android development). So far so good.
A while back i recall reading Google forbidding Cyanogenmod of including their multi-window feature (the one that allows you to surf the web and watch a youtube video simultaneously as seen in Samsung devices(Note 1/2 probably S4 and S3(?)). Anyways, my guess is they came to terms where they can agree or did Samsung ignore what google had to say? So to make a long story short, what are google's rights when it comes to android?
Can google, for instance, if it doesn't like what a manufacturer is adding to their phone be it a feature or a skin say that they only want manufacturers to stick to the AOSP look and if they do add their own skin they will be taken to court? Can they do this?
Just curious to understand how things are running here. I wanna know the rights google has and if it could have went to court with samsung because of using the multi window feature.
Click to expand...
Click to collapse
My understanding is while 'Android' or rather the AOSP is completely open source and free to use as you like, there are parts that Google have restrictive licensing over, or example the 'Gapp' (gmail, google+, play store etc). Manufacturers then also hold rights over the parts they add into Android (skins, other apps etc.).
Google has no control over manufacturers sticking Android on a device and that manufacture changing Android in anyway (hence the many many random Chinese devices), however Google can prevent a manufacturer from having a license to include the play store etc if they are unhappy with whats being done.
Google didn't forbid the CM team from including it, they said they would restrict access to the Play Store for devices running CM. The Play services is the only thing Google has power over, since that's their proprietary service. They cannot prevent someone from making a device that runs Android, since that's open source.
And I so believe Samsung's method is different, because apps require some changes before you can run then in multi windows, so you can't just run any app (officially, that is).
Lesicnik1 said:
Google didn't forbid the CM team from including it, they said they would restrict access to the Play Store for devices running CM. The Play services is the only thing Google has power over, since that's their proprietary service. They cannot prevent someone from making a device that runs Android, since that's open source.
And I so believe Samsung's method is different, because apps require some changes before you can run then in multi windows, so you can't just run any app (officially, that is).
Click to expand...
Click to collapse
I see. Doesn't that in theory mean that Samsung could just take their sgs 3, remove all google services and smack their own play store onto it or am i missing something here?
shadehh said:
I see. Doesn't that in theory mean that Samsung could just take their sgs 3, remove all google services and smack their own play store onto it or am i missing something here?
Click to expand...
Click to collapse
Oh they could. But then it would be blocked from other Google projects as well.
Wayne Tech S-III
This feature was introduced back in February and at the time a many news outlets reported on it, for example:
http://www.androidcentral.com/how-assign-contacts-relationship-voice-actions-google-now
I did not have this functionality at the time but I was hoping it's just a matter of short time to roll it out.
I'm on an HTC One M7 (4.4.3 Sense 6) using the Google Now launcher version 1.1.0.1167994.
I am based in Europe so I think this might be just another US exclusive functionality.
Is calling based on relationships from Google Now available to anyone outside of the US?
Are there any hacks to make this available?
I have found a workaround myself and it's easier than I thougth: simply add 'dad', 'mom' etc. to the nickname field in Google contacts. That's all.
Hello,
My question is about policies app publisihing/developing companies
seem to have. It's not technical question but hopefully not totally
off topic. First I think I need to give some background, however.
I run AOPS based phone and F-droid is my only app store. I also like
Signal and Spotify and luckily signal.org publishes Signal apk on
their website and more importantly - their release certificate and its
identification fingerprint. I find that very convenient and even
secure (with jarsigner and keytool). Spotify doesn't appear to do
so. Actually, nobody else seems to do that
I know that I can get apks from e.g. apkpure.com. I know the good
people behind Apkpure say that they don't mess with the apks. And I
have tested their Signal apk with the signal.org release certificate
and I can say that it verifies ok. I'd like to trust them but I like
to *verify* more.
I understand that releasing actual apks can be a burden for a bank or
charging network. Google does it very well for them. But certificates'
lifetimes are usually many years so publishing them and their
fingerprints should be "nearly free".
So what is the thing with withholding release certificates and/or
their fingerprints? They just didn't come to think of it?
Thanks in advance,
Sauro