Related
Is there a website where you post what you want and developers bid to do the work? I've used similar services before for html / php / java and was wondering if it was available for android apps???
sites like guru.com and rentacoder.com you may be able to find people.
Do you mind explaining the project"s" your looking at having done. Might find some people here who will be able to help and assist
I thought i saw something similar on www.anddev.org
Sluzpuppet said:
sites like guru.com and rentacoder.com you may be able to find people.
Do you mind explaining the project"s" your looking at having done. Might find some people here who will be able to help and assist
Click to expand...
Click to collapse
Here is my thought (remember, I'm not a developer):
A super basic app: a single icon (like wifi tether) that opens a predefined url that has users info appended to the end as arguments, see example below:
Code:
mydomain,com/page.php?name=mike&id=1234&color=blue
Users info are just text fields with no validation and are setup from the menu button.
This would be a customizable app. A person could modify the app by adding (changing) three files
icon image
url.xml - contains the base url and perhaps the app name
user.xml - contains the users data fields
above example users.xml would add 3 setup fields for name, id, color
by changing the url xml file, you could setup app to piont to any domain
by changing the users.xml, you could setup any number of arguments
by changing icon, app image would match users preference
Ideally it would be best if it could have multiple occurances of the app (maybe just app name being different would work) because I may want it for mydomain.com any you may want to use it for yourdomain.com
Hope this makes sense.
I'm a programmer; I don't do Sales, I don't do Marketing LOL
I'm working on an app that has my partner and I debating on pretty much a daily basis. I'll try to explain best as possible without too much detail.
The app takes a pre-loaded database (a "template") from assets folder and loads into the app. Works fine. Thing is, there will be more templates, probably up to 20 for which we want to charge (we're talking small amounts here).
So, here is the debate we're having:
1. Create 20 apps with each having the one template. Easy as hell for me but goes against my programming standards as to why have 20 apps when ONE does the work? NOTE: Does not need any permissions
2. Create one app, ask user for template on startup, download from cloud. A little tougher, but not much. Problem here is that what if they want 2 templates? Or 5? We want to charge for each template. I could do "AppName +2" or "AppName +5"
versions and charge accordingly. NOTE: Max templates a user would have is probably 5.
3. In-app purchasing...I've read about this. Not so easy. You either hide content (and over bloat your app or code a mechanism that allows Joe to have in-app purchase app, but not Julie). Google makes clear note of this in their docs. NOTE: my bloat would be about a 7,000 row database on user's phone.
So, just looking for some other opinions...all comments welcome!
TIA,
Roots
From what I can understand, I think # 1 is the most tried and true method, as most launchers with themes work this way. The upside for you as far as making money is concerned is that there are people who want all their options, whether or not they will ever use them... I have been guilty of it myself with lp+ themes. I've paid for ones I'll never use, because it's there and most apps tend to be in the "impulse buy" price range.
I agree, #1 is your best option, it may require a lot more work as far as deploying goes, but it is the most reliable method.
Interesting! Thank you for your replies.
A little more information...the templates (e.g. database) will probably never change from initial download, so that update is a moot point.
One thing I didn't think about is creating and SAVING 20 keys!!! Yikes. I've lost those before...very bad situation when that happens. Not to mention 20 distinct package names.
One thing I didn't think about is creating and SAVING 20 keys!!! Yikes. I've lost those before...very bad situation when that happens. Not to mention 20 distinct package names.
Click to expand...
Click to collapse
You can sign all packages with the same key.
As of package names, all you need is to change the application package not the code packages. The ADT has a tool for renaming application packages.
1. Create 20 apps with each having the one template. Easy as hell for me but goes against my programming standards as to why have 20 apps when ONE does the work? NOTE: Does not need any permissions
Click to expand...
Click to collapse
Here is my suggestion, although I never tried it:
Create 20 apps for templates with no logic at all.
For each one of these apps:
(1) Put a single template file in the res/raw folder
(2) Create an Activity that doesn't do anything at all (call finish on onCreate).
(3) Set intent-filter for your null activity with android.intent.action.MAIN and your own custom category.
Create 1 main application with all application logic and code but with no templates at all (or just one default template).
(1) Search for installed templates using PackageManager.queryIntentActivities with an Intent that match Intent.ACTION_MAIN and your custom category.
(2) Read templates using Context.createPackageContext, getResources of the created context, getIdentifier to find the id of the template file and openRawResource to actually open it as an InputStream.
There are other methods to share resources, take look at android:sharedUserId.
Interesting concept, but if I read it right, I sill need 20 "dummy" apps to go with the main "driver".
I've got some time to mess with this because I have to implement drag and drop on some ListViews. I might just end-up coding the in-app purchase stuff.
EDIT: LOL, I can't wait till I can afford an iPad and port all my stuff to iOS
Hello everyone,
Based on the release of the new forums here, and the seemingly enthusiastic response, I have decided to create a repository of libraries that are useful to Android developers.
Libraries:
AChartEngine : This is a library that lets you make and display all kinds of charts, from line to bar to scatter charts. A very good solution, should you need charts.
Uses: Well... Charts!
Made by 4ViewSoft.
ActionBarSherlock: This library will help you in maintaining an easy-to-use and consistent UI across all version of Android above 2.1.
On Android 3.0+, it will use the native ActionBar, and below that, a backport of the 4.x native ActionBar has been used. Note that this is not needed if you want to target APIs that support the AB natively.
Made by Jake Wharton.
aFileChooser: The basic version of Android File Chooser, it features somewhat less graphical hints about, for example, your current folder, but does provide a somewhat cleaner UI.
Uses include a simple file chooser for opening a file from a specific folder.
Made by Paul Burke.
android-hybridchoice: A ListView that lets users open a single list item, while also letting you select one or more other items. This way, you can (for example) view a mail while selecting others to throw away, instead of having to do that separately.
Uses: Making any app with items that have detailed info in a ListView that can be changed.
Made by Kiran Rao.
android-lockpattern: A library for you to include a lock pattern in your app. It was adapted straight from Android source code, and is very useful for keeping data secure.
Uses: Root apps, apps with sensitive data or other apps that could hurt one's phone.
Made by Hai Bison.
Android FileChooser: Helps you in letting the user select a file. A visual GUI is made available to you and the user, through which the user can navigate to select a folder.
Use cases: A file explorer, a downloading action, moving/copying files, etc.
Made by Hai Bison.
Android Maps Extensions: A library that extends a number of Google Maps API v2 features. It features things like marker grouping, where it won't display individual markers when there's a lot of them together.
Can be used in an application with a Maps View, to make it clearer and easier to understand.
Made by Maciek G
Android Proxy Library: This lets you provide an easy and better (than Google's) solution to the Android Issue 1273 (OF DOOOOOOOM!). It allows you to easily get the proxy settings of an Android device.
Uses: You know, getting the proxy settings.
Made by Marco Pagliari.
BetterPickers: A cool library that implements the Android 4.2 Clock time picker for you to use in your own apps as you please. It is a very nice way to keep your app Holo-themed, and it continues the push for a consistent UI in Android.
Among others, uses include clock and calendar apps.
Made by Derek Brameyer.
Build.prop Tools: A library to get access to the properties in a device's build.prop, which include its codename, Android version, CPU name and others.
Uses: Having to edit or otherwise get access to certain build.prop entries in your app, for example to display system info.
Made by Jonathan Haylett.
Cieo: A library that lets you animate text. It is currently in very early Alpha stages of development, but does work.
Uses: Word games, for example Hangman, where you can add a little extra to make it more dynamic.
Made by Igor <LastNameUnknownException>.
DroidParts: This library helps you add the most used parts of Android apps without problems. It can help you add a number of more complicated parts that have been modded to be simpler, like an ImageFetcher and an improved ASyncTask.
Uses: Just about every app can do this. Easier everything!
Made by Alex Yanchenko.
droidText: A PDF creator library. Should you need to create a PDF easily, this is the library you want!
Uses include parsing user input and saving it to a PDF file for later use, or to send (i.e. via email).
Made by Markus Neubrand.
EventBus: This helps you tie together Activities, Fragments and background threads. It eliminates the need for overly complex listeners and interfaces, to make your life a lot easier.
Uses: Apps with background threads, Activities and/or Fragments working together.
Made by Markus Junginger.
FlipView: A FlipBoard-like animation to use for scrolling. Give your app a little extra eye candy, when you have multiple pages to scroll through.
Uses: News readers and other apps that separate content into clear "pages".
Made by Emil Sjölander.
GAST (Great Android Sensing Toolkit): A library to help you use an Android phone's internal sensors. It will help you control many sensor, including NFC, the camera and the accelerometer.
Uses: A diagnosing app, or one that uses certain sensors for controlling an app feature.
Made by Greg Milette and Adam Stroud.
GoogleDateTimePickers: TimePickers done right. A beautiful replacement for Google's standard DatePickers and TimePickers, It is designed with the Holo style in mind, and makes it much, much easier to select the date and time of your liking.
Uses: Letting the user pick a date or time, e.g. when setting an alarm.
Made by Mirko Dimartino.
Hansel And Gretel: This allows you to visually display the Fragment Stack. When you open a new Fragment, it is added to a 'tower' of Fragments, from which you can also pop (remove) the top one. This library allows you to visually represent that Stack in your app.
Uses: If, for example, you travel through multiple Fragments within one Activity, you can show which Fragments the user has gone through.
Made by Jake Wharton.
HoloEverywhere: A library that backports the Holo UI design to earlier Android versions (like ActionBarSherlock does for the ActionBar). It uses the Android 4.1 Jelly Bean assets and makes them usable on Android versions 2.1 Eclair and up.
Uses: An application that needs Holo on all platforms it runs on. Be aware that it might disrupt the UI consistency for the user, so think about that before including this in your app.
Made by Sergey Shatunov and Waza_Be.
Inscription: For displaying information about your app to the user. It contains a ChangeLogDialog and a WhatsNewDialog, where the former displays more detailed information (version numbers, etc.) than the latter.
Useful for showing a dialog after the user updated your app, without having to write too much code.
Made by Martin van Zuilekom.
JacksonInFiveMinutes: A library to help in parsing and processing JSON, offering different ways to do so: A streaming API, a tree model and data binding.
Of course, you can use this anywhere to parse JSON data (Twitter apps, for example).
Made by Tatu Saloranta (?).
JazzyViewPager: Makes it easy to add a nice effect when changing pages with a ViewPager. Easily done: just add it, change some references and pick an animation!
Uses: Spicing up your app's animation portfolio, when using a ViewPager.
Made by Jeremy Feinstein.
ListViewAnimations: An easy way of animating your ListView items easily and nicely, to give your app that little bit extra.
Uses: To spice up any ListView that needs more fancies.
Made by Niek Haarman.
NumericPageIndicator: A ViewPagerIndicator 'plug-in' that lets you easily display which page you're looking at. For example, show "page 2 of 20" at the bottom of the page.
Uses: Letting the user know which page they are on.
Made by Manuel Peinado.
OrmLite: A library that simplifies database interaction in Android apps. It is designed to work with multiple database systems, including SQLite and MySQL.
Uses: Database creation, management in Android. Various DB systems supported.
Made by Gray Watson.
osmdroid: An almost full, free replacement of Google's MapView. It includes numerous functionalities, like a number of on- and offline tile sources.
Uses: To add a map to your app, and easily use functionalities surrounding it.
Made by a number of non-disclosed awesome people!
PDFViewer SDK: A free PDF viewer library that works well. However, it does have a watermark on the screen, and you'll have to pay to remove it.
Uses are obvious: Building all kinds of PDF viewers!
Made by GEAR.it.
PlayView: This helps you in creating a Google Play-like style in your UI, by extending the CardsUI library (which can be found in the PlayView thread).
Good to use in an application where you want a nice smooth UI, with a modular and changeable look and feel.
Made by Androguide.fr and GadgetCheck, among others.
ProgressButton: A nice library that shows you the progress of a download in the same button that you press to start the download. See Google Music for a working example.
Comes in handy when there's a list of items to download, and you want to facilitate easy downloading and keeping tracks of those downloads.
Made by Prateek Srivastava, based off of Roman Nurik's examples.
PullToRefresh: Expand a Listview (multiple versions are supported) with the ability to refresh its content upon pulling down at the top.
Uses include social media clients, lists of other network-based updated items (orders, for example).
Made by Chris Banes.
Remote Metadata Provider: Get system information about, for example, which music is playing on your phone. This could help you implement lockscreen music controls for your app.
Uses: Lockscreen music controls, for example.
Made by XDA member Dr.Alexander_Breen.
RoboSpice: A library that makes long-running asynchronous tasks easy. For example, it offers caching (very useful for orientation changes).
Uses: Any app that implements an ASyncTask, especially when it is a bigger and longer-running one.
Made by Octo Technology.
RootTools: This library will make it very easy for you to gain superuser access and execute commands based on that. This way, you can, for example, move and replace files anywhere on the system.
This is especially handy when you are making a sort of backup app, or when you need the ability to do things that aren't possible without root access.
Made by Stericson.
ShowcaseView: This is a library that lets you highlight certain areas of the screen. Just like the Android launcher on first launch (or YouTube), it will allow you to tell the user how to interact with what, and what it does.
Uses: Clarifying certain UI elements and their purpose to the user.
Made by Alex Curran.
SlidingMenu: This lets you include a menu that slides into your app from the side, like the YouTube app has it. There, you can add a whole hosts of options and actions that don't fit or belong in the ActionBar. SlidingMenu also lets you customise the menu. The new Android supportv4 library version, revision 13, also has a basic version of this.
Uses: Menus with additional items, like channels in the YouTube app, shortcuts to your app's settings, etc.
Made by Jeremy Feinstein.
Spring For Android: A library that helps you integrate some features easily. For example, it can simplify using REST in your app.
Uses: Whenever your app needs REST of auth support.
Made by GoPivotal.
StandOut: A library that enables you to make your apps float! Basically, you can make any app you want float. Look in the thread for numerous examples!
Useful when you are making an app that is also used parallel to other apps, like a calculator or note taking app.
Made by Mark Wei.
StickyListHeaders: This is a great way to help you order alphabetised lists in a clear and very recognisable way. The current letter which you are scrolling through will be shown at the top of the screen, for as long as the first letter of the top item on the screen starts with that letter.
Use cases are, for example, scrolling through songs, email addresses, names and articles.
Made by Emil Sjölander.
Sugar ORM: An easy way to use SQLite libraries in your app. It takes away some of the more complex and annoying tasks of database management.
Uses: Managing and querying SQLite databases in your app.
Made by Satya Narayan.
UpdateChecker: This library is a quick and easy way of making sure that users know about updates to your app. It will show a Dialog every 5 times (by default) the app is launched, informing of an app update being available in the Play Store.
Uses: Making sure people update your app. It is handy in just about every app.
Made by Pietro Rampini.
ViewPagerIndicator: This library emulates the multiple ways of showing tab locations without using the ActionBar. This can be used to replicate the Play Store, older Google+ versions, launcher-like indicators and more!
This library is always handy when using tabs, but without wanting to, for example, sacrifice too much screen real estate to use the ActionBar.
Made by Jake Wharton.
Sites, etc. collecting libraries:
Android Libraries provides a big list of libraries for all sorts of tasks, including graphics engines.
Android Snippets is a collection of little snippets of code to help you in navigating some commonly (and less commonly) seen challenges in Android development.
Android UI Patterns for all kinds of UI libraries, with a nice app to go with it.
AndroidKickstartR is a web-based tool for quickly starting an Android app, including a number of (library) options to help ease some of the pain of adding extras. Fair warning: this seems to include older versions of some things, double check the generated project.
AndroidViews for multiple nice UI-based libraries that help make your app look and work awesome!
DevAppsDirect is an app with examples of libraries. Test without setting up a whole new project!
ramdroid77's Google+ community for GitHub-based libraries.
Libraries for developers: A nice little app that has a collection of libraries available to developers.
Also make sure to spread the word about and contribute to this repo!
Have fun,
bassie1995
very helpful thread! thanks mate
roottools is also a very helpful library: http://code.google.com/p/roottools/
nikwen said:
roottools is also a very helpful library: http://code.google.com/p/roottools/
Click to expand...
Click to collapse
Forgot that one as a big one. Shame, since I used it . Will add in a sec.
Sent from my Nexus 7 using Tapatalk HD
I used this library to include a file-chooser in my App:
https://code.google.com/p/android-filechooser/
Click to expand...
Click to collapse
and forked this, that acts basically the same:
https://github.com/dentex/aFileChooser
Click to expand...
Click to collapse
xda_dentex said:
I used this library to include a file-chooser in my App:
and forked this, that acts basically the same:
Click to expand...
Click to collapse
I shall be including this later today. Thanks for contributing!
bassie1995 said:
I shall be including this later today. Thanks for contributing!
Click to expand...
Click to collapse
You're welcome!
Also the other project seems valid. If you want, point to the original repository.
The main difference is that it stays on the standard sdcard only, by default.
I also found a really good site with cool libraries: http://www.androidviews.net/
I'm sure I will want to include some of them.
xda_dentex said:
You're welcome!
Also the other project seems valid. If you want, point to the original repository.
The main difference is that it stays on the standard sdcard only, by default.
I also found a really good site with cool libraries: http://www.androidviews.net/
I'm sure I will want to include some of them.
Click to expand...
Click to collapse
Yep, I'm including both. Also, AndroidViews is already mentioned at the bottom of the OP .
Sent from my Nexus 7 using Tapatalk HD
bassie1995 said:
...AndroidViews is already mentioned at the bottom of the OP
Click to expand...
Click to collapse
Oops... Sorry.
Sent from my GT-I9100 using xda app-developers app
I'm running a community on G+ about Android libraries hosted on github. Tons of stuff in there:
https://plus.google.com/u/0/communities/100609058582053363304
ramdroid77 said:
I'm running a community on G+ about Android libraries hosted on github. Tons of stuff in there:
https://plus.google.com/u/0/communities/100609058582053363304
Click to expand...
Click to collapse
Nice, will include the link in OP.
I was going to mention androidviews too; a very handy site. There's also a handy little app out on the Play store called Android UI Patterns (free), which is basically an app with quite a few libraries built in, so you can see what they look like in action on an actual device.
And I'm not sure if I should post this, or if it should have it's own thread (paid libraries or something), but I would argue that as there are quite a few professional developers here, a compilation of good, paid, non viral licensed libraries would be a good resource. On the other hand, XDA is all about the homebrew, open, sharing community.
Anyway, whatever the mod-gods decide, I was looking for a good, cheap, non-gpl3 licenced PDF framework for the company I work for. Many frameworks were RIDICULOUSLY expensive and many open source ones were SLOW or not functional enough. In the end I found a good alternative at androidpdf.mobi . It's fully functional, affordable and they have good support. I know this may sound like an add, but I spent some time researching this, we now use it in production and figure I might save someone some time.
MacDegger said:
I was going to mention androidviews too; a very handy site. There's also a handy little app out on the Play store called Android UI Patterns (free), which is basically an app with quite a few libraries built in, so you can see what they look like in action on an actual device.
And I'm not sure if I should post this, or if it should have it's own thread (paid libraries or something), but I would argue that as there are quite a few professional developers here, a compilation of good, paid, non viral licensed libraries would be a good resource. On the other hand, XDA is all about the homebrew, open, sharing community.
Anyway, whatever the mod-gods decide, I was looking for a good, cheap, non-gpl3 licenced PDF framework for the company I work for. Many frameworks were RIDICULOUSLY expensive and many open source ones were SLOW or not functional enough. In the end I found a good alternative at androidpdf.mobi . It's fully functional, affordable and they have good support. I know this may sound like an add, but I spent some time researching this, we now use it in production and figure I might save someone some time.
Click to expand...
Click to collapse
I have seen and used Android UI Patterns, forgot to include it.
About the licensed libraries/technologies, maybe that's a good divide for this thread. Not between UI and functional libraries, but between paid and free? Don't think there are many paid libraries for daily use, though?
If you can link me to the PDF parsing library you used, I will be including that.
Also, everyone, updates are a little slow due to school work. Hardest exam that's yet to come is on Monday, will update it probably that afternoon (my time zone ).
Sent from my Nexus 7 using Tapatalk HD
The pdf library is found at androidpdf.mobi.
You can d/l the sdk and use it for free; you pay to get rid of the watermark on each page (the fee is per application, though).
I have come across some paid UI widget libraries (coverflow type things etc). It took me a while to adapt existing OS code to achieve the same kind of effect, so sometimes, if it's the right price, it's more effective to buy these kinds of things...
AChartEngine is a good one for charts and graphs http://www.achartengine.org/
MacDegger said:
The pdf library is found at androidpdf.mobi.
You can d/l the sdk and use it for free; you pay to get rid of the watermark on each page (the fee is per application, though).
I have come across some paid UI widget libraries (coverflow type things etc). It took me a while to adapt existing OS code to achieve the same kind of effect, so sometimes, if it's the right price, it's more effective to buy these kinds of things...
Click to expand...
Click to collapse
tmka said:
AChartEngine is a good one for charts and graphs http://www.achartengine.org/
Click to expand...
Click to collapse
Thank you both. I hope to be updating the OP tomorrow.
Sent from my Nexus 7 using Tapatalk HD
StandOut is a great library to create floating app :good:
Hello everyone,
I'd suggest also DroidText, for creating PDF files
Tiwiz
ciao99 said:
StandOut is a great library to create floating app :good:
Click to expand...
Click to collapse
That looks awesome, I think I'll try it myself
tiwiz said:
Hello everyone,
I'd suggest also DroidText, for creating PDF files
Tiwiz
Click to expand...
Click to collapse
Nice, a PDF creator! I'll take a look and add it.
To everyone: Sorry for not updating, exams are busting my nuts right now . I'll try and get some more in there today or tomorrow .
Sent from my GT-I9300 using Tapatalk 2
With the exams over and spare time at 1:44 AM, I'll update this again with all the suggestions from this thread. I'll add more "external" ones later.
EDIT: Done!
Hey All -
First, really quick background: I'm a ASP.NET / .NET programmer, and taught myself Java and Android while making the one app I have released (for a hobby of mine) - https://play.google.com/store/apps/details?id=com.tsqmadness.bmmaps
Now, having said that, I'm looking to upgrade my app with a couple features (version 2.0, baby!), and was wondering how to make an 'add on' apk to access from the initial app.
For example (this is one of the several uses I am thinking of for the 'add on'), the easiest one would be -
Main app wants to access an add-on apk to call a function to grind some numbers, and return a result. If that add-on APK's not installed, then the user wouldn't be able to use that function.
The UI stuff I can handle easily, the main purpose of my question here is -
How can I tell if the other 'add on' APK is installed, and
How do I access a function (in a class or some such) in the other APK?
Honestly, I'd google it, but I'm not sure what this process is even called, so my searches have come up pretty sparse.
Thanks guys -
-Mike.
Do you want it to be a feature unlocker? Like a pro version key? For that purpose I'd recommend in-app-purchases because the user doesn't feel limited during download because he's got "just" the free version.
If you want it to execute methods, you could have a look at shared user ids and system broadcasts.
nikwen said:
Do you want it to be a feature unlocker? Like a pro version key? For that purpose I'd recommend in-app-purchases because the user doesn't feel limited during download because he's got "just" the free version.
Click to expand...
Click to collapse
Originally, this WAS a plan. I have switched to in-app purchases for that now, however.
nikwen said:
If you want it to execute methods, you could have a look at shared user ids and system broadcasts.
Click to expand...
Click to collapse
Thanks, that'll give me a starting place to search on. I was thinking a few other reasons for it as well (like, a map marker pack, for a limited basic example..)
Thanks-
Mike.
coyttl said:
Originally, this WAS a plan. I have switched to in-app purchases for that now, however.
Thanks, that'll give me a starting place to search on. I was thinking a few other reasons for it as well (like, a map marker pack, for a limited basic example..)
Thanks-
Mike.
Click to expand...
Click to collapse
Welcome.
The difficult part will be returning a result to the original app.
Hi Guys,
I managed to root my FireTV a few days back, and yesterday decided to look at the voice search to see if I could use it for other things.
After reversing some code, I found the actual voice search is handled by com.amazon.vizzini.apk
The SearchOverlay.class has this piece of code, which calls back to the amazon fireTV UI SearchResultsActivity upon completion with the search result returned as a string.
I replaced the fire TV UI with my own code, which receives the search text, and then sends a JSON rpc to KODI's web interface, and brings KODI to the front after the search is completed.
Here is a video of it in action.
http://youtu.be/hpgKci_gJYY
android studio project
http://uptobox.com/ccykod7zua1l
mirror
http://www107.zippyshare.com/v/mAhl3UuM/file.html
***** I have a FireTV v1 updated to fire os 5 ******
I have no idea if this will work on older versions of software.
To make it work you will require ROOT, and you will have to uninstall or move the existing fireTV amazon UI.
Reason for this is that the vizinni.apk calls back to
localIntent.setComponent(new ComponentName("com.amazon.tv.launcher", "com.amazon.tv.launcher.ui.SearchResultsActivity"));
So your activity has to be in that package, and called SearchResultsActivity.
The only other way to possibly get round this would be to modify the vizinni.apk to call a different package instead, but then voice search wouldn't work on the amazon UI anyway. I wasn't really bothered about the amazon UI working myself which is why I did it the way I did.
I just moved the original system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk to /system then installed my code via android studio.
mount -o rw,remount /system
mv /system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk /system/
You will also need to change KODI's settings to enable web interface control on port 8080.
On my setup it was .. system.. services.. webserver.. and tick the box that says "Allow control of kodi via http" and make sure the port is set to 8080.
edit: 07/07/2016
I did start work a few months back on an Xposed module (works but not 100%), I was going to add a settings page but I think there was issues with xposed on android version that the fire tv runs on, due to permissions etc.
You can set a prefix in the code (currently hard coded to KODI) so if you say " kodi star wars" it would pass the param of "star wars" to kodi.
If you just say "star wars" without the prefix it would pass this to the normal amazon UI.
If anyone wants to take it further, it's attached on the link below.
http://uptobox.com/ensqll4a7r65
Mick
Thats actually pretty great.
Conventional wisdom was that both voice recognition and response "results packaging" was done server side - and the only return query you could get were preexisting amazon database references - not the result of the initial voice recognition.
I've actually read that multiple places - but as it turns out, no one had bothered reversing the process I guess.
Major props and thank god for overlays containing strings... Finally - that microphone might not be so useless after all..
Next step - implement it to interface with google search. (Weather in ...)
edit: Actually - there are three interesting usecases I can think of on top of my head...
1. Launch other Apps (maybe even with "fixed Keywords (App 1 f.e. would work edit: "Number 1" delivers better results. )" if App names arent known to Amazon) - so thats text>launcher app - see if sphinx02 has any interest in coding that as part of Firestarter..
2. google search (Whats the weather in.. ) text>google search app (if possible)
3. direct text input as seen in the POC video
edit 4. forward to Amazon - not to "break" their implementation
This could be realized by a quick 4 way select screen (just confirm with the direction button) after you select the string in the overlay.
great find and implementation. would love see more expansion as above post mentions. Are you planning to share fire tv UI code?
I was playing with voice search strings and found that Amazon tends to strip out "Google" in front of search queries -so instead of "Google how is the Weather tomorrow" only "How is the weather tomorrow" will get returned.
But - Alexa as a trigger word will be returned fine, so - I vote for using "Alexa" as a trigger word to forward all search queries to the google search app.
Ok - maybe not - but conceptually, this would be a great "work of art".
An even better idea than Harklekinrains' would be to check the foreground app and do different things based on that. For example, if Kodi is open it could send the intent to Kodi. If the Fire TV launcher is open it could fall back to default functionality, etc. Simulating keystrokes could also cover 99% of the other applications. I'm excited for this. It really makes the Fire TV so much less of a novelty.
I've just updated the original post with a copy of the android studio project, and a few more details.
Mick
Great mate,thanks! gonna check it out soon!
One question (as im not firm with intents and stuff): aint there a possibility to listen for intents sent to the amazon ui and catch them? Personally, i dont care too much about it right now as im using nothing but kodi, but maybe some day when wanting to use prime or similar stuff?
dafunkydan said:
Great mate,thanks! gonna check it out soon!
One question (as im not firm with intents and stuff): aint there a possibility to listen for intents sent to the amazon ui and catch them? Personally, i dont care too much about it right now as im using nothing but kodi, but maybe some day when wanting to use prime or similar stuff?
Click to expand...
Click to collapse
I don't think so as the actual code in the vinizzi apk is as follows:
Intent localIntent = new Intent();
localIntent.setComponent(new ComponentName("com.amazon.tv.launcher", "com.amazon.tv.launcher.ui.SearchResultsActivity"));
localIntent.putExtra("identifier", null);
localIntent.addFlags(402653184);
localIntent.putExtra("term", str);
localIntent.putExtra("text", str);
localIntent.putExtra("source", "VOICE");
localContext.startActivity(localIntent);
So basically when it receives the voice search response from amazon's server, it's starting the activity com.amazon.tv.launcher.ui.SearchResultsActivity from package com.amazon.tv.launcher
Mick
Integrating the search attempt based on the previous foreground app would mean that "voice search" could never "initate a new attempt". This would prevent the "lets just ask google, or lets launch an app - impulse use" of the feature. Still - in the long term it might turn out to be the right approach - f.e. if
"People tend to use the the google search only lets say "half a dozen times", and in the majority of cases just want text input in Kodi" Also - without having a select screen with "four (dont make it too many) predefined "use options"" discoverability is pretty non existent. People would have to read readmes to find out which interactions are supported.
Also Amazon wants you to "be able to always reach the Amazon content search from anywhere" - so, political implications.
Also - each time a new app would want to integrate the voice to text feature - they would have to contact the devs of this project - if you dont use "just text input" as a default in the "use the previously open app as an indicator of intent" approach. So make sure you default to "just text input" in that case. (Amazon launcher > forward query to Amazon (do not break functionality), ....)
Dont implement it as a mixed approach though as "Kodi is open most of the time" probably for most people - and the intent (message) gets "confusing".
--
What you probably shouldnt do - regardless, is to use "trigger words" as an "indicator of intent" - because Amazon can start blocking them. "Number 1" is probably generic enough so they wont try to block that - but in principal, they can. Also Amazons "voice to text" engine is optimized for "short phrases" - the longer your input query gets the more prone to errors their results become. Leave the actual "voice input" as "natural" as possible (dont embed logic there). Imho.
I'm in the USA and uptobox.com is not available in our country.
I want to give the source a look and see what I can do to contribute.
Can you put it on github or somewhere else?
Much appreciated.
kratosjohn said:
I'm in the USA and uptobox.com is not available in our country.
I want to give the source a look and see what I can do to contribute.
Can you put it on github or somewhere else?
Much appreciated.
Click to expand...
Click to collapse
I've just uploaded it to zippyshare too. Link added to original post.
Mick
It would be nice if this could be generic way of entering text in any app, similar to the FTV Remote App that has keyboard support. I am surprised Amazon has not done this already. If you are in a text field voice search would fill in the text, else it can continue with normal Alexa functionality letting you " always reach the Amazon content search from anywhere". Should be an easy solution for Amazon to implement, not sure if it could be added with the progress here, and it would really make the voice control so much more useful.
Hey Mick, as im still very exited about that (so frustating to enter searchphrases with a dpad...), i thought about what your great find could develop to. I hope u dont get me wrong, as i unfortunatly cant contribute any programming (if u need something made with tasker let me know ), its not that i want to demand anything - rather share my thoughts or ideas...
- I think its a good thought not to 'blow it up' by adding many keywords, make it more complicated, and avoid amzn to lock features down. even if it may be an abstract fear. I think with a well-structured menu in kodi, all apps one will need to start are just 2-3 clicks away.
- if i got it right, xposed could hook into every module and alter it, right? so basically it should be possible to avoid to exchange the amazon ui and/or alter the vizinni.apk,but just modify the SearchOverlay.class? wouldnt it be (on top) the most convenient way to decide wether one is on e.g. Amazon Prime, or on kodi, and either hand over the result to the original module, or hand it over to kodi?
So, please understand my post as a mixture between sugestions and questions, not as a demanding 'please make it how i want it asap'. Im really excited about your finding, appreciate your sharing, and want to contribute what i can do - unfortunatly its rather thoughts and suggestions. Cheers mate!
Great Work !!! I totally understand this is for amazon Fire products only. My question is would we be able to port for generic Android TV box like nVidia Shield which also has mic capability and comes with root support.
Good job @is0-mick it's great to see you accomplish something that Netflix doesn't even want to be bother with on their app.
harlekinrains said:
No you dont understand. You havent even read or understood the first posting - but you have bought another device and now want others to move in your direction on your behalf.
Click to expand...
Click to collapse
Seriously mate if XDA bothers you so much, you need to take a break from it for your own sanity!
fach1708 said:
Seriously mate if XDA bothers you so much, you need to take a break from it for your own sanity!
Click to expand...
Click to collapse
No, I really don't think he needs to take break, his argument is completely understandable. This is not a Shield forum (btw before we make judgements, I own both devices). We need to get this fixed for one device, before even mentioning whether other devices are an option.
is0-mick said:
To make it work you will require ROOT, and you will have to uninstall or move the existing fireTV amazon UI.
Reason for this is that the vizinni.apk calls back to
localIntent.setComponent(new ComponentName("com.amazon.tv.launcher", "com.amazon.tv.launcher.ui.SearchResultsActivity"));
So your activity has to be in that package, and called SearchResultsActivity.
The only other way to possibly get round this would be to modify the vizinni.apk to call a different package instead, but then voice search wouldn't work on the amazon UI anyway. I wasn't really bothered about the amazon UI working myself which is why I did it the way I did.
Click to expand...
Click to collapse
Is it not usefull for this to create a xposed mod? I thought xposed was made for this...
Perhaps you should talk with rbox in his thread about a integration into version 1.5 of his mods, look here.
is0-mick said:
I just moved the original system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk to /system then installed my code via android studio.
mount -o rw,remount /system
mv /system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk /system/
Click to expand...
Click to collapse
So does that mean, while you are using your proof-of-concept you can not use the normal Launcher-UI?
Really great your work! I hope we got more
Sadly I am with my FireTV-Stick (hardware-Rooted-superSU) and my FireTV box gen1 (hardware-Rooted-superSU+custom-recovery+unlocked-bl)on the old FW. I wait for custom roms.
Greetings by Idijt
EDIT:
I forgot to ask you something. Did you got the kind of search-request back?
Can you see if amazon-voice-rgn knows if it is a app or a video or a moviestar?
This looks pretty cool since I don't like typing the name of the movie in the search box... now I can just speak it.
As a novice I have one question, You wrote:
is0-mick said:
I just moved the original system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk to /system
Mick
Click to expand...
Click to collapse
The code I downloaded was in .RAR format not .apk. Do I need to covert it to .apk or rename it to .apk before replacing the original?
I've not rooted my device yet so I haven't looked at the file structure, but I'd be willing to root to get this feature. OR is the adding of this code better done by someone other than a novice?
Thanks
carpenter940 said:
The code I downloaded was in .RAR format not .apk. Do I need to covert it to .apk or rename it to .apk before replacing the original?
Click to expand...
Click to collapse
It's the source code. You have to compile it and create the apk with AndroidStudio.