Как искать в Play Store по разрешениям?

66

Как мне указать, что я не хочу видеть приложения, для которых требуется, например, доступ в Интернет? Или показывать только приложения, которые используют определенное разрешение?

Конкретный репозиторий с поиском на своей веб-странице? Приложение, которое обеспечивает поиск в магазине Play?

Адриан Панасюк
источник
6
Это действительно может быть отличным предложением для Google ..
Android Quesito
8
Если вы используете веб-интерфейс Play Store, вам не нужно пытаться выполнить установку, чтобы просмотреть разрешения приложения - на странице каждого приложения есть вкладка, в которой они перечислены. Может сэкономить вам несколько кликов.
Чахк
3
AppBrain должен иметь возможность добавить эту функцию. Вот запрос функции . Голосуй за это. :)
поток
@ Чак я не могу найти вкладку. Не могли бы вы опубликовать пример ссылки для этой вкладки?
Марсель
@Marcel Сайт Play Store был недавно переработан Google. К сожалению, они удалили функциональность, о которой я говорил. Теперь вам нужно нажать кнопку «Установить», чтобы просмотреть разрешения.
Чак

Ответы:

5

ОБНОВЛЕНИЕ: в настоящее время не работает согласно списку магазина Google Play.

Если вам интересно, я разработал приложение StripSearch для фильтрации поисковых списков по используемым разрешениям. Приложение работает, исключая результаты, которые не соответствуют требованиям к разрешениям, указанным в данном фильтре поиска (фильтр может исключать, требовать или игнорировать определенные разрешения). Несколько фильтров включены по умолчанию, но вы также можете создавать свои собственные.

Получить StripSearch здесь: https://play.google.com/store/apps/details?id=com.hasslefixes.stripsearch

Если вы хотите посмотреть демоверсию, объясняющую его использование, вы можете посмотреть видео здесь: https://www.youtube.com/watch?v=mynw3rbky5A

StripSearch бесплатен, не содержит рекламы и шпионских программ и использует только следующие разрешения:

  • android.permission.INTERNET (очевидно, необходим для поиска в магазине)
  • com.google.android.providers.gsf.permission.READ_GSERVICES (необходимо для получения идентификатора Google Play Android, привязанного к вашему телефону и учетной записи)

Дай попробовать!

HassleFixes
источник
Ммм? Не android_idхранится ли в /data/data/android.provider.settings/databases/settings.dbбазе данных на устройстве, даже если не установлен GSF? Просто интересно, действительно ли для доступа к нему нужно разрешение GSF (а не что-то подобное READ_SECURE_SETTINGS). Я уже слышал, что GSF как-то «перезаписывает» этот оригинал android_idпри инициализации учетной записи - но хранится ли он в другом месте на устройстве? Если да, то где?
Иззи
Кстати: выглядит круто; Я только что добавил его в AppBrain и в свой список маркет-аддонов ;)
Иззи
Сначала я тоже так думал, но оказалось, что этот идентификатор Android, хотя и специфичен для каждого телефона, не является действительным идентификатором для поставки в Google Play. Для доступа к Google Play через рыночный API (так работает StripSearch) требуется идентификатор GTalk Android. Этот блог углубляется в: blog.codepainters.com/2012/01/17/how-to-obtain-gtalk-android-id Спасибо, что заглянули!
HassleFixes
Большое спасибо! Это пришло вовремя. Собирался перепрошить еще одно устройство для использования «без Google» (вместо NOGAPPS с BlankStore). Теперь у меня есть действующий android_id для этого :)
Иззи
Подсказка: если кого-то интересует более подробная информация об этом приложении, я написал резюме в StripSearch, которое поможет вам найти приложения по разрешению . HassleFixes не доставляет хлопот, он исправляет и довольно быстро (то есть, хорошая поддержка :)
Izzy
23

Как это в настоящее время МОЖЕТ быть сделано

Во время моей утренней рутины, читающей мои RSS-каналы, я наткнулся на обзор на N-Droid , обсуждая приложение под названием APEFS . Это приложение разработано немецкими студентами (поэтому его описание в Playstore на немецком языке, даже если вы установите язык на английский). Но для наших не немецких читателей, краткое описание здесь:

По сути, APEFS - это альтернативный интерфейс Google Playstore. Вы просматриваете PlayStore, как и в оригинальном приложении, и выполняете поиск по нему. Но когда в списке результатов 1 , вступает в действие расширенный фильтр 2 :

Результаты поиска APEFS APEFS фильтр

Как показано на втором снимке экрана, вы можете выбрать, какие разрешения разрешено иметь вашему разыскиваемому приложению (флажок отмечен), а какое разрешение оно не должно иметь (флажок снят).

Однако: хотя это можно использовать для фильтрации приложений с нежелательными разрешениями (например, показывать только приложения без разрешения Интернета), вы не можете ограничивать свои результаты противоположным (например, показывать только приложения с разрешением Интернета). Приложение явно ориентировано на пользователей, обеспокоенных их конфиденциальностью / безопасностью - и согласно обзору (я только что нашел его пару минут назад, поэтому я пока не мог его протестировать), оно делает очень хорошую работу.


РЕДАКТИРОВАТЬ:

Как это уже год назад, и обещание на домашней странице APEFS ( GTranded на английский язык, поскольку их собственная английская версия не содержит этого утверждения в первом абзаце), похоже, не будет выполнено в ближайшее время (приложение все еще находится в автономном режиме): Пожалуйста, рассмотрите веб-решение из моего другого ответа в качестве альтернативы.

Иззи
источник
Ссылка на магазин Google Play не работает, это обновленная версия? PS: если да , то уже есть поддержка на английском ...
Zuul
@ Зуул Нет, это не так. Ссылка «Воспроизвести» только временно прервана, благодаря «повторному запуску Play-8» в текущем магазине тайлов (см. Домашнюю страницу APEFS ( GTranded to English)). Очевидно, что приложение использовало некоторую очистку сайта;) К сожалению, их английская страница не содержит этого уведомления ...
Иззи
2
@sashoalm см. три комментария в верхней части вашего. Это стало несовместимым с повторным запуском PlayStore. На их веб-сайте написано, что они работают над обновлением, но, похоже, это займет довольно много времени (и так уже после перезапуска). Тем не менее, не оставляйте надежду!
Иззи
1
4 года спустя, и они все еще работают над этим обновлением. Тем не менее, @Izzy вдохновил меня не терять надежду ;-)
Spencer D
2
@ Иззи, к сожалению, StripSearch тоже не работает. Я не уверен, что это все еще как-то работает для некоторых людей, но для меня это не сработало, и я считаю, что где-то еще читал комментарии о том, что другие пользователи сообщали об этом как о неработающем. (Возможно, они были в обзорах Play Store приложения.) Несмотря на это, я решил использовать ваше решение, которое отлично работало. Я не хотел оставлять отзыв об этом, просто говоря: «+1, спасибо;» тем не менее, ваша веб-страница является единственным работающим поиском / фильтром, который я нашел. Итак, вы получили мое возражение и мою благодарность. Вы внесли отличный вклад в сообщество.
Спенсер Д
14

С тех пор, как был задан этот вопрос, прошло более двух лет. Тем не менее, «официального решения» не существует. Несмотря на свои обещания, APEFS (представленный в моем предыдущем ответе более года назад) не вернулся. Поэтому я решил создать собственное решение:

Уже почти 4 года я поддерживаю списки «Android-приложений по назначению», то есть сгруппированные по их вариантам использования. В марте я начал перемещать их на свой собственный сервер . Все метаданные хранятся в базе данных на этом сервере, и, наконец, я смог настроить поиск по разрешениям .

SearchMask
Маска поиска, чтобы найти «приложения по категориям и разрешениям» (щелкните изображение, чтобы увеличить его)

Здесь вы можете выбрать от 1 до 5 категорий (обратите внимание, что выбор «родительской категории» автоматически включает в себя все ее «дочерние»), плюс одно или несколько разрешений. Предварительные настройки по умолчанию предназначены для поиска «приложений, дружественных к разрешениям» - поэтому, если вы ищете такого кандидата, вы можете просто отправить форму после того, как сделали описанные выборы. Это должно упростить, например, поиск приложения PIM , которое не запрашивает разрешение на доступ в Интернет (чтобы хранить ваши личные данные на вашем устройстве).

Тем не менее, возможно и обратное: если вы, например, хотите выяснить, что хороший NFC может сделать для вас, выберите до 5 категорий, которые вас интересуют, затем разрешение NFC, переключите поле «Разрешения» на «включить». и, при необходимости, сортировка по «по рейтингу, по убыванию» (чтобы сначала получить приложения с самым высоким рейтингом).

Если вы сомневаетесь, в правом верхнем углу есть маленький значок с вопросительным знаком, предоставляющий вам некоторую «онлайн-помощь».

Но это не все. Как я объяснил во втором абзаце, приложения в моих списках сгруппированы по их «цели», то есть для чего они вам нужны. Таким образом, приложения с сопоставимой функциональностью должны появляться рядом друг с другом:

Список приложений
Категория с подробностями приложения (источник: страница справки (отсюда и «красные цифры»); щелкните изображение, чтобы увеличить его)

Таким образом, вы можете сравнить их не только по рейтингу, но и выбрать тот, который запрашивает меньше разрешений (число в поле; на изображении выше обозначено «красным 6») или, если возможно, без каких-либо проблем (без красной рамки вокруг поля ). Нажав на название приложения, вы увидите еще несколько деталей, как показано. И есть много «пасхальных яиц» (т.е. событий MouseOver) - опять же, укажите на страницу помощи.


Полное раскрытие: Как первоначально указывалось, описанный сайт был разработан мной, построен мной, наполнен мной его содержанием и в дальнейшем поддерживается мной. Он доступен на двух языках (английский / немецкий), бесплатно (в том числе: нет файлов cookie, Flash-файлы cookie и т. Д.) И т. Д. Этот вопрос на Android.SE был одной из причин, по которым я его настроил.

Также следует помнить о том, что это не распространяется на всю «коллекцию игрового магазина». На сегодняшний день в базе данных записано чуть более 10 000 приложений (что, вероятно, составляет чуть менее 1% от того, что на Play) - если только вы не учитываете дерьмо, подделки и бесполезные приложения в Play, то мои записи может покрывать около 10% ☺). Тем не менее, я надеюсь (и думаю), что это уже полезный ресурс, который вам понравится.

Иззи
источник
13

Почему в настоящее время   это не может быть сделано

Когда разработчик выполняет загрузку своего приложения в Google Play, файл манифеста приложения считывается в базу данных, из которой выполняется поиск приложений.

Чтобы разрешить поиск приложений на основе их разрешений, необходимо получить доступ к базе данных и собрать данные, относящиеся к узлу манифеста приложения <uses-permission>, ранее считанные из файла AndroidManifest.xml , где разработчик объявил разрешения для своего приложения.

Хотя это кажется довольно простым, Google API не предоставляет средства для этого:

Строго говоря, Google Play не выполняет фильтрацию на основе элементов <Использования-разрешения>.

Из фильтров в Google Play Фильтрация на основе элементов манифеста - <использование-разрешения> .


Разрабатывая

По сути, Google Play Store использует файл манифеста приложения для автоматического применения фильтров на основе устройства пользователя, технических характеристик оборудования, страны, оператора связи и т. Д.

Все это делается тихо, без вмешательства каких-либо параметров поиска.

Пользователь из Google Play или сторонних поисковых систем может ограничить результаты после того, как они будут автоматически отфильтрованы Google, исходя из личных предпочтений, таких как исключение платных приложений; ограничьте результаты приложениями, совместимыми с пользовательскими устройствами, среди прочего. Но нет никакого способа вмешиваться в фильтры, применяемые Google. Даже если каким-то образом мы дошли до этой части, API по существу не подготовлен / не предназначен для фильтрации на основе разрешений, как упомянуто выше.

Zuul
источник
1
Я должен сказать, что ваше руководство было полезным (см. Мой ответ здесь ): оно работает, извлекает данные приложения (включая разрешения) через API Playstore, передает их в базу данных и запускает поиск по последней :)
Иззи
6

Простой ответ: нет. Хотя вы можете спросить Google. Как сказал пользователь Chahk, веб-интерфейс экономит вам несколько кликов, но по-прежнему нет способа отфильтровать результаты по вашему запросу.

9ball
источник
5

Обходной путь - создать приложение Java, которое использует android-market-api . В настоящее время это может искать приложение, основанное на "ключевых словах или имени пакета". Поисковый запрос может быть построен для поиска необходимого разрешения, которое запрашивается. Небольшое домашнее задание требуется, но кажется полезным.

После загрузки androidmarketapi-0.6.jar и protobuf-java-2.2.0.jar (конечно, у вас должна быть уже установлена ​​JRE), вы можете выполнить следующее:

java -jar androidmarketapi-X.Y.jar myemail mypassword myquery

Вы должны заменить XY на 0,6, так как это текущая версия и заменить учетные данные и запрос. Для построения запроса вы можете посетить эту страницу.

Нарайанан
источник
Какой тип запроса даст приложения по разрешению? Я не вижу ничего связанного с этим.
RR
Я не уверен в этом, так как только поиск по имени пакета по "String query =" pname: <package> ";" и по имени разработчика "String query =" pub: <name> ";" приведены в качестве примера. Предоставляя подходящее ключевое слово в поиске (которое нужно выкопать), я надеюсь, вы сможете получить то, что ищете.
Нараянан
2

Если у вас есть навыки программирования, вы можете написать свой собственный анализатор и использовать фильтры над ним. Я ничего не нашел об API, но вы можете медленно разобрать веб-интерфейс, чтобы получить то, что вы хотите.

Это не самое простое решение, но оно может дать вам уверенность в результатах, которые вы можете получить.

Честно говоря, я бы хотел сделать простой пример на Python, но сейчас нет времени. Возможно в ближайшее время.

Крайст
источник
1
Вот чего я пытаюсь избежать. Загрузка полмиллиона веб-страниц - не самая лучшая из моих любимых игр. 12 ГБ полосы пропускания и 50 ГБ необработанных данных и кто знает, сколько машинных часов. Я могу написать код, который предпочел бы не делать.
RR
1
Купите сервер, напишите программу, которая кэширует список разрешений и запустите его там, и обновите кэш для приложений, когда они получат новые версии - но только когда приложение соответствует запросу ключевого слова какого-либо пользователя (и вы даже можете разбить на страницы результаты и ограничить себя страницы, которые просматривает пользователь.) Затем добавьте рекламу, чтобы вы могли заплатить за сервер, и, возможно, даже добавьте шаги "???" и "ПРИБЫЛЬ!"
Адриан Панасюк
2
Мы больше не используем серверы?
Адриан Панасюк
... или просто попытайтесь поговорить с командой Google, чтобы добавить эту функцию.
Крайст
1
@Kpa спасибо за ссылку на страницу, которая не имеет к этому никакого отношения.
RR
1

Поиск с именем разрешения по-прежнему означает, что поиск в лучшем случае выполняется через описание приложения.

Например: «COARSE (NETWORK-BASED) LOCATION» -> при поиске этого списка будут перечислены приложения, у которых эта информация указана в их описании, но при этом не удастся выполнить поиск на вкладке Permissions.

Если бы Google позволил собрать информацию обо всех приложениях, как я, тогда я смог бы предоставить миру поисковую систему для поиска приложений через разрешения, которые им требуются :)

gaara87
источник
1

Ни одно из решений, упомянутых здесь, не работает по состоянию на февраль 2018 года.

Поэтому я создал собственное простое решение, которое я опишу ниже.

TL; DR: использовать API AppBrain.

Длинный ответ

  1. appSearchНапример, создайте папку с именем .

  2. Зарегистрируйте аккаунт в AppBrain. Затем перейдите на панель инструментов вашего разработчика . Он предложит вам включить опцию разработчика для вашей учетной записи.

  3. Перейдите на страницу доступа к API.

  4. Скопируйте поле аутентификации, которое выглядит как, di=xxxx&t=zzzzzи сохраните значения в файле, который называется appBrain.jsonв следующем формате:

    {"DI": "xxxx", "TOKEN": "yyyy"}

  5. Теперь загрузите filter.js и сохраните его в той же папке (appSearch).

  6. Установите Java 8+

  7. Запустите следующую команду:, jjs -scripting filter.js -- keywordгде ключевое слово может быть любым поисковым термином.

  8. Вы должны увидеть список из 50 приложений, которые соответствуют вашему поисковому запросу и отсортированы по количеству разрешений, со ссылкой на страницу их магазина игр.

    Редактировать: код filter.jsотносительно прост и может быть адаптирован к вашим собственным критериям, если вы немного разбираетесь в программировании. Я постараюсь сделать его более настраиваемым в будущем.

  9. Бесплатный уровень позволяет ограниченное количество запросов в день. Тем не менее, вы сможете совершать около 30 запросов в день, что достаточно для личного использования.

HRJ
источник
«Ни одно из решений, упомянутых здесь, не работает по состоянию на февраль 2017 года». Не могу поверить в это. Мой поиск по приложениям все еще работает, и это даже февраль 2018 года;) // Спасибо за ваш подход - но он не полностью соответствует вопросу. Цель состояла в том, чтобы исключить приложения из списка результатов, если они запрашивают определенные разрешения, а не просто список, отсортированный по количеству разрешений. А AFAIK «бесплатный уровень» ограничен 10 запросами в день. Хорошая идея, хотя :)
Иззи
1
Упс, отредактировано в Фев 2018. Мне нравится ваше решение, но это кураторский список, который не масштабируется. Например, разработанные мной приложения, по понятным причинам, отсутствуют в вашем списке, хотя они требуют очень небольшого количества разрешений и пользуются популярностью. filter.js, Что я связан является пример кода , который может быть адаптирован (кем - то , кто знает , программирование). Возможно, если у меня будет больше времени, я сделаю его более настраиваемым для непрограммистов.
HRJ
Конечно, незавершенность является недостатком. Но вы всегда можете порекомендовать приложения для включения в список, Харшад - здесь для списков приложений, а здесь для репозитория :) Поскольку вы стараетесь запрашивать как можно меньше разрешений, мне было бы особенно интересно, чтобы эти приложения были в наличии. в списке.
Иззи