Intereting Posts
OnClickListener не может быть разрешен для типа (Eclipse) Возможно ли, чтобы строка состояния прокручивалась вместе с панелью инструментов с использованием схемы координатора на Android? Как удалить элементы из списка с помощью жестов, как в gmail Изменение размера изображения по разрешению экрана Android Android: получать уведомления, когда текущий режим внутри AudioManager изменяется OnCreateView () вызывается слишком часто в пользовательских предпочтениях Запустить Android gps-сервис У Android Studio есть средство просмотра иерархии? Как получить доступ к содержимому ответа об ошибке в Volley? Статус говорит о проекте в Prod Иконки дизайна материалов неожиданно перестали работать Android-Libgdx, вызов другой активности после запуска игры на кнопке Поддержка Emoji Keyboard для EditField в android Поддержка Android v23.1.0 прерывает обновление NavigationView get / find header Java.lang.ClassNotFoundException android + eclipse + maven + osx

Как ограничить приложение Android конкретным устройством?

Я разрабатываю приложение для Android для телефонов SPECIFIC – это требование проекта, а не мое решение.

Поэтому я должен иметь возможность сделать приложение доступным на рынке Android только для тех устройств, которые производятся этим производителем SPECIFIC.

Кажется, я не могу найти, как это сделать.

Является ли это возможным?

PS Я могу получить устройство в коде Android. Поэтому я подозреваю, что приложение на рынке должно также фильтровать устройство. Я просто не знаю, действительно ли это (было бы здорово, если бы оно было).

Solutions Collecting From Web of "Как ограничить приложение Android конкретным устройством?"

Вам не нужно отфильтровывать ваше приложение на основе устройства / производителя в коде приложения, вместо этого вы можете сделать это с консоли разработчика Android-разработчика – https://market.android.com/publish/, только когда вы публикуете приложение непосредственно ,

В консоли разработчика есть раздел «Поддерживаемые устройства», в котором показан список всех устройств, которые могут получить доступ к рынку Android. Затем вы можете отфильтровать устройства или производителей, которые не совместимы с вашим приложением

Это раздел главной консоли разработчика:

Это раздел в главной консоли разработчика

Здесь вы можете запретить устройствам и / или производителям видеть ваше приложение

Здесь вы можете запретить устройствам и / или производителям видеть ваше приложение

Дополнительную информацию см. На странице справки « Доступность устройства», в которой говорится:

Диалог Доступность устройства может помочь разработчикам двумя мощными способами:

Понимать, какие устройства могут найти ваше приложение в Android Market

  1. Доступность устройств предоставляет динамический список совместимых устройств на основе ваших настроек манифеста. Например, если манифест apk указывает большой размер экрана, консоль будет отображать поддерживаемые устройства, которые могут найти ваше приложение в Market.

  2. Вы также можете использовать функцию динамического поиска, чтобы видеть устройства, к которым ваше приложение не будет доступно. Вы можете выполнить поиск по производителю, название дизайна (например, «Страсть») или фактическое имя публичного устройства (например, «Nexus One»), чтобы узнать, отфильтровывает ли ваши параметры манифеста устройство. Фильтр проблемных или несовместимых устройств. Эта функция предоставляет разработчикам возможность администрирования конкретного устройства. Когда вы добавляете устройство в список «Исключенные вручную устройства», ваше приложение не будет доступно для этого исключенного устройства в Market. Это в первую очередь предназначено для того, чтобы помочь разработчикам обеспечить наилучший пользовательский опыт, помогая разработчикам отфильтровывать устройства, которые, как известно, имеют проблемы с совместимостью.

В разделе « Поддерживаемые устройства » на странице консоли разработчика вы можете просмотреть список всех устройств. Он загружает более 2000 ползунков, которые первоначально настроены на включение. К сожалению, похоже, что в интерфейсе нет опции «отключить / включить все» …

… Вместо этого я использовал инструмент инспектора Firebug, чтобы получить имя класса для этих объектов слайдера (не могу вспомнить, что это было сейчас – два случайных аббревиатуры в верхнем регистре), а затем выполнил выражение в консоли Javascript, которое переключило состояние каждого слайдера. Что-то вроде:

switches = document.getElementsByClassName("ABC DEF"); for(i = 0; i < switches.length; i++) switches[i].click(); 

Это заморозило браузер на минуту или две, но впоследствии каждый телефон был отмечен как неподдерживаемый. Затем вы можете включить телефон (ы), который вам нужно поддерживать.

Ниже приводится улучшение ответа Desty с:

  • Автоматическое определение имени класса
  • Действительно отменяет: работает, даже если у вас уже сняты флажки

Код:

 var className = document.evaluate( 'string(//li[@data-device-id]/checkbox/@class)', document, null, XPathResult.STRING_TYPE, null ).stringValue; switches = document.getElementsByClassName(className); for(var i=0; i < switches.length; i++) { if (switches.item(i).getAttribute("aria-checked") == "false") switches[i].click(); } 

Для выполнения сценария требуется около 1 минуты. Запустите его из браузера Javascript Console.

Ну, вы можете сделать это логично.

Сначала детали оборудования, используя getResources().getConfiguration() . Теперь вы можете дать условие, если ваше оборудование относится к этому mdel или имя, затем продолжайте.

Я написал сценарий для отключения устройств по бренду на основе скрипта от KrisWebDev.

Вы должны найти <ol> выбранного вами бренда, отредактировать и добавить id="sarasa" к нему, а затем запустить этот скрипт, чтобы отключить все:

 var nodes = document.getElementById("sarasa"); for(var i=0; i < nodes.childNodes.length; i++) { if (nodes.childNodes[i].childNodes[0].getAttribute("aria-checked") == "false") { nodes.childNodes[i].childNodes[0].click(); } } 

Я написал небольшой скрипт, используя другую часть из ответов на этой странице (спасибо @Desty и @MichaelDePhillips). Сценарий быстрый (от 100 до 200 мс на моем компьютере), и вы можете указать, что бренд не переключается. Вот сценарий:

 console.time('Execution time'); var manufacturers = document.querySelectorAll('[data-manufacturer-group]'); for (var i = 0; i < manufacturers.length; i++) { var manufacturer = manufacturers[i]; var brand = manufacturer.firstElementChild; if (brand.tagName == 'H3' && brand.textContent != 'Samsung') { console.log(brand.textContent); var tags = manufacturer.children; for (var j=0;j<tags.length;j++) { var tag = tags[j]; if (tag.tagName == 'OL') { var devices = tag.children; for (var k=0;k<devices.length;k++) { var device = devices[k]; if (device.tagName == 'LI') { var checkbox = device.firstElementChild; var attr = checkbox.getAttribute; if (checkbox.tagName == 'CHECKBOX') { checkbox.setAttribute('aria-checked', 'true'); } } } } } } } console.timeEnd('Execution time'); 

Это мой первый javascript, все отзывы приветствуются.

Когда вы собираетесь загружать приложение на рынок, на странице публикации у вас будет опция доступных устройств, где вы можете добавлять / удалять устройства. Таким образом, вы можете отфильтровывать устройства по названию производства и модели.

По мере развития дизайна консоли Google Play мне не удалось выполнить предыдущую работу. Я заметил, что было изменено только первое состояние флажка. Кажется, что каждый клик делает POST на сервер google. После некоторых попыток я обнаружил, что добавление темпа позволяет зацикливать флажки.

Вот Javascript, который работает для меня. Просто скопируйте прошлое в консоли вашего браузера (протестировано с помощью CHROME и FIREFOX). Обратите внимание, что вам нужно будет заменить «Следующая страница» в вопросе «Выбор» кнопки следующей страницы, если ваш язык не является английским.

 function uncheckAll() { const cbxSelector= 'input[type=checkbox]:checked:enabled' let checkBoxes = document.querySelectorAll(cbxSelector) if (checkBoxes.length > 0) { checkBoxes[0].click(); setTimeout(uncheckAll, 20); }else{ let nextPage = document.querySelector('button[aria-label="Next page"]:enabled'); if(nextPage){ nextPage.click(); setTimeout(uncheckAll, 20); } } } uncheckAll(); 

Если вы хотите проверить все флажки, просто замените 'input [type = checkbox]: checked: enabled' with 'input [type = checkbox]: checked: disabled'