this is my question:
I need my app to verify if a new version is available on the market. Potentially it would show an alert dialog notifying that an update is available and then take the user to the market.
I know that the market does that if the user checks that option, but many people don't bother taking a look at updates, and I really need to give them a nudge to get the update.
I didn't find any suitable solution for this, as I've read before that an app can´t retrieve this information from the market. Is searching for a value in an html file on my server a possibility?
What you want is prvided by a really GREAT library you can use called aQuery: Here is the page that goes over it's check for upgrade functionality http://code.google.com/p/android-query/wiki/Service
And it does SOOOOO much more too.
Related
I have build a maps related software which require the app to get update whenever the base map is modified. Basically we have nodes.json whose data will get updated under such situation.
One way i am thinking of is to have the latest version of .apk on my dropbox account. Whenever the file in my account is of higher version than the one currently installed, user will get a pop-up . But i am not very clear about the implementation.
Also the application works offline so whenever user connects to some internet source he should be notified..
Please help me with my solution or suggest if there is a better solution.
thanks
I am about to publish my first app. There would be updates and new version of this app coming soon. I want to know if there is a way I can make users download the updates/new versions compulsorily. (I have seen many apps doing that.)
Do I have to make any changes in the code for this? If yes, what will be those changes?
I was in search of an API which would help me get the details pertaining to different applications from playstore. After much googling and going through many solutions already given at SO, I decided to go for Android Market API though this API has few drawbacks.
I am mainly focusing on getting the reviews pertaining to an application - the major drawback here while I use this API is that, I do not get the reviewer name, app version, device and many more valuable information I need.
I have made enough of research to find any alternate methods are there to fetch this information, but to no avail.
During the research, Appmonsta api came to my notice, which claim to provide almost all the details available in the playstore, including username, device, app version etc.
I am sure they would not be maintaining a database which would not be a practical solution, as the market information is prone to change every second. And I am also quite sure, google would not be providing any update to them alone.
Since I am in need of such an API, I am curious to know, what would be the mechanism/technique they use or one should use, such that the whole playstore information is available to them alone - atleast the complete details pertaining to a review.
Any help, comments, guidance in this regard is much appreciated.
There's no official API so whatever you use you shall expect problems - if not today then maybe tomorrow, when Google change a thing in the store. But anyway, you may take a look at the Andlytics sources: https://github.com/AndlyticsProject/andlytics - maybe it'd suffice for your needs
I am sure they would not be maintaining a database which would not be a practical solution, as the market information is prone to change every second.
If I were writing such a web API, I would in fact maintain a database and use it as a cache. New hits for a particular app page would potentially refresh the cache. The information would be obtained by scraping the web page.
The WhereDat API searches the Android Play Store. It lets you find apps, using full-string search queries. It also supports auto-complete use-cases by using prefix-string search. The lookup API lets you get data about apps using their package as the key.
what is the way to get app rating and user reviews of an app on Google Play, if I have it´s Id?
You don't really have any means for this in Android.
There are some libraries however, that give you some options to check info from Google play. Not sure if they're actually updated since the time it was actually Market place and if any breaking changes were made since then.
You could try these;
https://code.google.com/p/android-market-api/
https://code.google.com/p/android-query/wiki/Service
Since there is no official API, here is the quick and dirty way:
Use HttpClient to get the requested page, i.e. "https://play.google.com/store/apps/details?id=com.poncho.yapm".
View the page source and learn how to parse the page and get what you want from the response.
For example, for rating:
Search for the first "About This App".
Start from previous result, search for the first 'ratingValue'
Start from previous result, search for the first 'content="'
Start from previous result, search for '"'.
The rating is located between the last two locations.
The major drawback: if Google change the page layout you will need to change your implementation.
However, this often happen also when you use formal API.
If this is a real application, running a daily test that verifies your code would save you time and customers.
Hope this helps, Yaron
There is an Open Source application titled Andlytics available on the Google Play store. It is updated frequently enough, but mostly yo accommodate any changes that might be made to the Google Play store's back-end.
I am not sure if it can be coded to bring in details specific to a particular application. At the moment, how it works is, a user must log in with a valid Developer Account. Then authorize it to access your Google account. And once done, it then gets all applications on the developers account. Not a specific account.
This, however, I think (I think because I have never had the opportunity of actually using the source) can be modified to accommodate your specific requirements.
You can get the entire Source Code here.
You can also try the link mentioned in Stefan's post. Though a cursory look suggests that it has not been updated after the first quarter of 2012. But if you can bring the code up to speed, that could work too.
Since I am linking to an app on Google Play as also it's source code, for the sake of clarity, I have nothing to do with Andlytics, the project or the app.
I'm considering asking users to submit a review to the Android Marketplace (Google Play I guess now, but...) ocassionally, but I would like to know before I ask them to if they have submitted a review. Is this even possible?
There is no API for the Play Market, which is what you really need.
As others have mentioned, you can always keep track if a user has pressed a button to launch the Play Market, but you can't tell what they did once there.
There is a 3rd party Market API, but it is not reliable (certainly not there fault - it is a workaround, since an official API doesn't exist).
It is possible to create a "Campaign" using AdWords. This allows you to track referral URLs (which would allow you to track entry points to the app from external resources). I found a good post about that here: http://gyurigrell.com/2012/2/21/tracking-install-sources-android-apps
Bottom line, I am pretty sure you can't do what you are asking.
Googling gave me this link - http://code.google.com/p/android-market-api/. I haven't tried it but it claims that it can get the comments according to your app ID. There are other ports listed there.
What you can try is that get all the comments for your app. Then get the user account details using the AccountManager. Check if any details here match those with the author name in the comments. You will need to add a permission in your manifest to get data from the AccountManager and it's a pretty creepy permission.
It seems like a lot of work though and I think you would be better off just using a dialog box once and then making sure it does not pop up again after someone has clicked on it through a stored preference.
if you have a button for them to press to leave you the review, you could always put a preference when they click it, and then check later to remove the button.
It would be nice if Google/Android, one day, would allow for a custom rate-my-app dialog where that user information could be known server side and not popup the developer/app dialog if it doesn't need to (the user has already rated the app). Wishful thinking Feature Request
Unfortunately this is not possible at the moment. See How to know if a specific user has rated a Android App?
Also, although a suggestion might be to use something like android-market-api please note that it does violate absent licenses and you could lose your developer account although I doubt it, but the app may mysteriously get banned one day!
I think the biggest issue is that of privacy.
As far as workarounds, it may be better to wait for something official. All unofficial APIs often are unreliable as to changes Google makes and the unofficial APIs have to catch up and fix problems while the service no longer works, with no way of continuing to run until it is fixed. Therefore, simply setting a SharedPreference may be the most you can comfortably achieve at this point. Either on first run, at delayed and specified intervals, or if a user has already checked a 'don't ask again/already rated' box.