How do I specify that I do not wish to see apps that require for example internet access? Or to only show apps that use a specific permission?
A specific repository with search on its webpage? An app that provides searching the Play Store?
How it currently CAN be done
During my morning routine reading my RSS feeds, I stumbled on a review at N-Droid, discussing an app named APEFS. This app is developed by German students (hence its description on the Playstore is in German, even if you set the language to English). But for our non-German readers, a short description here:
Basically, APEFS is an alternative front-end to the Google Playstore. You browse the playstore as you do with the original app, and search it the same. But when on the results list1, an advanced filter2 comes into play:
As the second screenshot shows, you can select what permissions your wanted app is permitted to have (checkbox marked), and what permission it should not have (checkbox unchecked).
However: While this can be used to filter out apps with unwanted permissions (e.g. show only apps whitout the Internet permission), you can not restrict your results to the opposite (e.g. show only apps with Internet permission). The app clearly targets at users concerned about their privacy/security -- and according to the review (I just found it a couple of minutes ago, so I could not test it yet) it does a very good job.
Why currently this can't be done
When a developer performs the upload of his application to Google Play, the application manifest file gets read to a database, from where the search for apps is performed.
To allow searching for applications based on their permissions, one would have to access the database and collect data that concerns the application manifest node
While this seems quite straightforward, Google API does not provide means to this end:
From the Filters on Google Play Filtering based on Manifest Elements - <uses-permission>.
Essentially, Google Play Store uses the application manifest file to automatically apply filters based on the user's device, hardware specifications, country, carrier, etc.
All of this is done silently without the intervention of any search parameters.
A user either from Google Play or third party search engines, can limit the results after they get automatically filtered by Google, based on personal preferences like excluding paid apps; limit the results to apps that are compatible with the user devices, among others. But there's no way to interfere with the filters applied by Google. Even if, some how, we get to that part, the API essentially isn't prepared/designed to filter based on permissions as mentioned above.
Simple answer: you don't. Though you can feel free to ask Google. As user Chahk said, the web interface saves you a few clicks, but there is still no way to filter results as you are requesting.
A round about way is to create a Java app that utilizes android-market-api. Presently it can search app based on "keywords or package name". The search query can be built to search for the necessary permission that is being sought. Little homework required, but seems useful.
After downloading androidmarketapi-0.6.jar and protobuf-java-2.2.0.jar (of course you should have JRE already setup) you can execute the following:
You have to replace X.Y with 0.6 as that is the present version and replace credentials and query. For building query you can visit this page.
If you have programming skills you can write your own parser and use filters above it. I couldn't find anything about API but you can slowly parse web-interface to get what you want.
It's not the simpliest solution but can make you much confident with results you can get.
Honestly I wish I could make simple example in Python but have no time now. Maybe in nearest future.
|show 2 more comments|
Searching with the permission name still means it searches at best through the description of the app
For example :"COARSE (NETWORK-BASED) LOCATION" -> searching for this will list down applications which have this information listed in their descriptions, but it fails to search through the Permissions tab.
If google allowed to scrape the info of all the apps, like i was, then i would be able to provide the world with a search engine to search apps through permissions they require :)