¿Cómo restringir la aplicación de Android a un dispositivo específico?

Estoy desarrollando una aplicación de Android para una marca de teléfonos ESPECÍFICA: ese es el requisito del proyecto, no es mi decisión.

Por lo tanto, debo poder hacer que la aplicación esté disponible en el mercado de Android solo para los dispositivos producidos por ese fabricante ESPECÍFICO.

No parece ser capaz de encontrar cómo hacerlo.

¿Es posible?

PD. Puedo recuperar la marca del dispositivo en el código de Android. Así que sospecho que la aplicación de mercado también debería poder filtrar por la marca del dispositivo. Simplemente no sé si realmente lo hace (sería genial si lo hace).

No necesita filtrar su aplicación según el dispositivo / fabricante en el código de la aplicación; en su lugar, puede hacerlo desde la consola del desarrollador del mercado de Android: https://market.android.com/publish/ cuando publica la aplicación. .

Hay una sección de ‘Dispositivos compatibles’ en la consola del desarrollador, que muestra una lista de todos los dispositivos que pueden acceder al mercado de Android. A continuación, puede filtrar los dispositivos o fabricantes que no son compatibles con su aplicación

Esta es la sección en la consola de desarrollador principal:

Esta es la sección en la consola principal del desarrollador

Aquí puede excluir dispositivos y / o fabricantes para que no puedan ver su aplicación

Aquí puede excluir dispositivos y / o fabricantes para que no puedan ver su aplicación

Para obtener más información, consulte la página de ayuda de Disponibilidad del dispositivo que dice:

El cuadro de diálogo Disponibilidad de dispositivo puede ayudar a los desarrolladores de dos maneras poderosas:

Comprenda qué dispositivos pueden encontrar su aplicación en Android Market

  1. Device Availability proporciona una lista dinámica de dispositivos compatibles según su configuración de manifiesto. Por ejemplo, si el manifiesto de su apk especifica un tamaño de pantalla grande, la consola reflejará los dispositivos compatibles que pueden encontrar su aplicación en Market.

  2. También puede usar la función de búsqueda dinámica para ver los dispositivos a los que su aplicación no estará disponible. Puede buscar por fabricante, el nombre del diseño (por ejemplo, “Pasión”) o el nombre del dispositivo público real (por ejemplo, “Nexus One”), para ver si su configuración de manifiesto filtró un dispositivo. Filtrar dispositivos problemáticos o no compatibles Esta característica proporciona una opción de administración específica del dispositivo para los desarrolladores. Cuando agrega un dispositivo a la lista “Dispositivos Excluidos Manualmente”, su aplicación no estará disponible para ese dispositivo excluido en Market. Esto está destinado principalmente a ayudar a los desarrolladores a proporcionar la mejor experiencia de usuario posible, ayudando a los desarrolladores a filtrar los dispositivos que se sabe que tienen problemas de compatibilidad.

En la sección Dispositivos compatibles de la página de la consola del desarrollador, puede ver la lista de todos los dispositivos. Esto carga más de 2,000 casillas tipo slider que inicialmente están habilitadas. Lamentablemente, no parece haber una opción de “deshabilitar / habilitar todo” en la interfaz …

… En cambio, utilicé la herramienta inspectora de Firebug para obtener el nombre de clase para estos objetos deslizantes (no puedo recordar lo que era ahora – dos acrónimos aleatorios en mayúsculas), luego ejecuté una expresión en la consola Javascript que alteró el estado de cada control deslizante. Algo como:

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

Esto congeló el navegador por uno o dos minutos, pero después, cada teléfono fue marcado como no compatible. Luego puede habilitar el (los) teléfono (s) que necesita para admitir.

A continuación hay una mejora de la respuesta de Desty con:

  • Detección automática del nombre de la clase
  • Realmente desmarca: funciona incluso si ya tienes algunas casillas sin marcar

Código:

 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(); } 

Este script tarda aproximadamente 1 minuto en ejecutarse. Ejecútelo desde su navegador Javascript Console.

Bueno, puedes hacerlo de una manera lógica.

Primero los detalles del hardware usando getResources().getConfiguration() . Ahora puede dar la condición si su hardware es de este mdel O nombre y luego continuar.

He escrito una secuencia de comandos para deshabilitar dispositivos por marca en función del guión de KrisWebDev.

Debes ubicar el

    de tu marca elegida, editar y agregar id="sarasa" a él, luego ejecuta este script para deshabilitar todo:

     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(); } } 

    He escrito un pequeño guión usando una parte diferente de las respuestas en esta página (gracias @Desty y @MichaelDePhillips). La secuencia de comandos es rápida (entre 100 y 200 ms en mi computadora) y puede especificar que una marca no cambie. Aquí está el guión:

     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 

    Este es mi primer javascript, todas las evaluaciones son bienvenidas.

    cuando va a cargar una aplicación al mercado, en la página de publicación tendrá opción de dispositivos disponibles donde puede agregar / eliminar dispositivos. De esta forma, puede filtrar los dispositivos por fabricante y nombre del modelo.

    Para marcar / desmarcar toda la checkbox en la página del dispositivo admitido en la consola de Google Play, use la secuencia de comandos siguiente. Esta secuencia de comandos funciona bien para la última consola de Google Play. Simplemente copie y pegue en la consola de su navegador (probado con CHROME y FIREFOX).

     function runScript() { for (var bxs = document.getElementsByTagName("input"), j = bxs.length; j--;){ if (bxs[j].type == "checkbox"){ bxs[j].click(); } } let nextPage = document.querySelector('button[aria-label="Next page"]:enabled'); if(nextPage){ nextPage.click(); console.log("next page start"); setTimeout(runScript, 20); } } runScript(); 

    A medida que el diseño de la consola de Google Play evolucionó, no tuve éxito en hacer el trabajo anterior. Observo que solo se modificó el primer estado de la checkbox. Parece que cada clic hace un POST al servidor de google. Después de algunos bashs, descubrí que agregar un tempo permite hacer un bucle en las casillas de verificación. Aquí está el Javascript que funciona para mí. Simplemente copie y pegue en la consola de su navegador (probado con CHROME y FIREFOX). Tenga en cuenta que deberá reemplazar “Página siguiente” en el botón querySelector of next page si su préstamo no es inglés.

     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(); 

    Si está dispuesto a marcar todas las casillas de verificación simplemente reemplace ‘input [type = checkbox]: checked: enabled’ with ‘input [type = checkbox]: checked: disabled’