Я хочу классифицировать установленные приложения для Android (например, социальные, развлекательные, игры, новости, инструменты и т. Д.). Может ли кто-нибудь предложить, как я могу программно организовать все установленные приложения?Android категоризирует установленные приложения
ответ
Используйте WhereDat API:
Создать сырецJSON POST запрос, с массивом из пакетов, которые вы хотите классифицировать:
{
"packages": [
"com.pixmix.mobileapp",
"com.nextstagesearch"
]
}
Отправить его:
http://api.wheredatapp.com/data
И вот ответ:
{
"apps": [
{
"category": "Productivity",
"rating": 4.5,
"updated": 1436741473,
"created": 1431028391,
"icon_url": "https://lh3.googleusercontent.com/q5pFGfXKZejowwcmlJl7M1IXGHVM4Zq_IjPpYb7zgkUFXO3QnZ2LyeOUUhMPaKPkJ3gR=w300",
"title": "WhereDat Beta",
"package": "com.nextstagesearch",
"ratings_count": 4,
"short_description": "WhereDat lets you easily search your device for contacts, apps, and recently accessed webpages without leaving your home screen. With deep linking you can search the c..."
},
{
"category": "Photography",
"rating": 4.0519609451293945,
"updated": 1435970764,
"created": 1430868349,
"icon_url": "https://lh3.ggpht.com/NgbwQzyo2mDR8su1Embio5jtHuPyScaMr0j4iub58YR5m19Ns0gVdeb9pYgNvMuFCcg=w300",
"title": "PixMix - Photo sharing",
"package": "com.pixmix.mobileapp",
"ratings_count": 2040,
"short_description": "Simple collage or photo sharing in just two clicks!★ See your photos in BEAUTIFUL albums★ Create beautiful album COLLAGE★ EASILY send albums to friends and family★ You..."
}
]
}
попробуйте, он отлично работает для меня. эти коды возвращают категорию всего приложения на последнем устройстве. Помните, что вы должны поместить этот код в поток (AsyncTask ...) (HttpParams устарел, мы должны использовать HttpUrlConnection).
private void getAppCategories() throws IOException, JSONException {
BufferedReader bufferedReader = null;
HttpURLConnection urlConnection = null;
BufferedWriter bufferedWriter = null;
StringBuilder result = new StringBuilder();
//Create JSON object to send to webservice
JSONObject jsonObjectSend = new JSONObject();
JSONArray jsonArrayPakages = new JSONArray();
PackageManager packageManager;
List<ResolveInfo> listApps; //this list store all app in device
try {
packageManager = getPackageManager();
Intent filterApp = new Intent(Intent.ACTION_MAIN);
filterApp.addCategory(Intent.CATEGORY_LAUNCHER);
listApps = packageManager.queryIntentActivities(filterApp,
PackageManager.GET_META_DATA);
for (ResolveInfo app : listApps) {
jsonArrayPakages.put(app.activityInfo.packageName.trim());
}
jsonObjectSend.put("packages", jsonArrayPakages);
Log.d("json", jsonObjectSend.toString());
URL url = new URL("http://getdatafor.appspot.com/data?key=53972606b926d38191a5446fdff89e377873d767fabedf6d");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(10000); /* milliseconds */
urlConnection.setReadTimeout(10000); /* milliseconds */
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application-json");
urlConnection.setDoOutput(true); /* allow output to send data */
urlConnection.connect();
OutputStream outputStream = urlConnection.getOutputStream();
bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
bufferedWriter.write(jsonObjectSend.toString());
bufferedWriter.flush();
InputStream inputStream = urlConnection.getInputStream();
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//Read data
String line;
while ((line = bufferedReader.readLine()) != null) {
result.append(line);
}
/*Parse JSON**********************************************************************************/
JSONObject jsonObjectResult = new JSONObject(result.toString().trim());
JSONArray jsonArrayApps = jsonObjectResult.getJSONArray("apps");
for (int j = 0; j < jsonArrayApps.length(); j++) {
JSONObject jsonObjectApp = jsonArrayApps.getJSONObject(j);
String packageName = jsonObjectApp.getString("package").trim();
String cate = jsonObjectApp.getString("category").trim();
Log.d("result", (j + 1) + "---> : " + packageName + "---" + cate);
}
/***********************************************************************************/
} finally {
if (bufferedReader != null) {
bufferedReader.close();
}
if (bufferedWriter != null) {
bufferedWriter.close();
}
if (urlConnection != null) {
urlConnection.disconnect();
}
}
}
называют этот метод под AsyncTask:
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... voids) {
try {
getAppCategories();
} catch (IOException e) {
Log.d("tag", "Net work error: " + e.getMessage(), e);
} catch (JSONException e) {
Log.d("tag", "JSON is not valid: " + e.getMessage(), e);
}
return null;
}
}.execute();
и НЕ ЗАБУДЬТЕ разрешения ИНТЕРНЕТ.
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Нет, он не работает для меня, он всегда приходит (JSONException e), потому что я всегда получаю «Получить действительный ключ API: http://wheredatapp.com/dev/pricing» в ответ –
@Bhanu Sharma они изменили правило, мы нужен ключ для использования этого API, доступ к http://wheredatapp.com/dev/pricing и нажмите GET API KEY, или вы можете использовать мой ключ в моем ответе. (Я отредактировал мой ответ). –
Я проверил внимательно, и это сработало, на самом деле я использую его в своем приложении. Если вы считаете, что это полезно, пожалуйста, дайте мне голосование, у меня нет даже достаточной репутации, чтобы проголосовать за другие ответы :( –
Android или playstore не предоставляют прямые интерфейсы API для доступа к Application (категория) информацию playstore программно. Таким образом, нет официальных API-интерфейсов.
http://wheredatapp.com/developers/ Этот API также не дает 100% результатов. (эти люди делают вручную. Просто зайдите в playstore и узнайте название категории и пакета, затем эти данные хранятся на своем собственном сервере). Так что этот API также не предоставляет информацию о всех приложениях из магазина воспроизведения.
Этот способ мы также будем делать. проблем нет. но это занимает некоторое время.
- 1. Python категоризирует типы данных
- 2. Предварительно установленные приложения
- 3. Ionic получить установленные приложения на устройстве Android
- 4. Ссылка на установленные приложения на рынок Android
- 5. Показывает только установленные приложения Particuar на Android
- 6. Как определить приложения, установленные на Android-устройстве?
- 7. Django Установленные приложения Местоположение
- 8. Отправка сообщения через установленные приложения
- 9. Установленные данные приложения на BlackBerry
- 10. Установленные приложения Google Play Service
- 11. получить установленные приложения в listView
- 12. Как найти все установленные приложения
- 13. Django не находит установленные приложения
- 14. Приложения iOS, установленные снаружи AppStore
- 15. Найти установленные приложения в какао
- 16. Установленные приложения Аутентификация и авторизация
- 17. Где установленные приложения хранятся в эмуляторе AVD_for_5_1in_WVGA?
- 18. Прочитайте и верните приложения, установленные на устройстве
- 19. Как отображать установленные приложения в RecyclerView?
- 20. Где adb устанавливает установленные приложения на устройство?
- 21. Resist app to show in установленные приложения android
- 22. Как получить установленные приложения в Android и без системных приложений?
- 23. Как запускать внешние, загруженные, но не установленные приложения на Android?
- 24. Как открыть установленные приложения ящик для Android с помощью кнопки
- 25. Активные приложения для Android, установленные как несколько значков
- 26. Как программно определить установленные аудио приложения на Android
- 27. Как запустить сторонние приложения Android, установленные мной непосредственно через Intent?
- 28. Ошибка ApplicationAdapter при попытке установить установленные приложения
- 29. Мои установленные приложения внезапно остановились в эмуляторе
- 30. Запрос на установленные приложения на iPhone
Привет, 503 ошибка, заявляя, что «это приложение временно находится за квотой обслуживания. Повторите попытку позже». –
Привет @Murtuza, исправлена ошибка! благодаря! –