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

Estoy desarrollando una aplicación de Android para la marca de teléfonos ESPECÍFICOS – que es el requisito del proyecto no es mi decisión.

Así que tengo que ser capaz de hacer la aplicación disponible en el mercado Android sólo a los dispositivos que son producidos por ese fabricante específico.

No parece ser capaz de encontrar cómo hacerlo.

¿Es posible?

PS Puedo recuperar el dispositivo hacer en el código androide. Así que sospecho que la aplicación de mercado debe ser capaz de filtrar por el dispositivo de hacer así. Simplemente no sé si realmente lo hace (sería genial si lo hace).

No es necesario que filtre su aplicación en función del dispositivo / fabricante en el código de aplicación, sino que puede hacerlo desde la consola de desarrolladores de Android Market – https://market.android.com/publish/ justo cuando publica la aplicación en sí .

Hay una sección "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 dispositivos o fabricantes que no son compatibles con su aplicación

Esta es la sección de la consola principal de desarrolladores:

Esta es la sección de la consola principal de desarrolladores

Aquí puede excluir dispositivos y / o fabricantes de poder ver su aplicación

Aquí puede excluir dispositivos y / o fabricantes de poder ver su aplicación

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

El cuadro de diálogo Disponibilidad de dispositivos puede ayudar a los desarrolladores de dos formas:

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

  1. La disponibilidad del dispositivo proporciona una lista dinámica de dispositivos compatibles basada en la configuración del 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 utilizar 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. Filtro de dispositivos problemáticos o no compatibles Esta característica proporciona una opción de administración específica del dispositivo a los desarrolladores. Cuando agrega un dispositivo a la lista "Dispositivos manualmente excluidos", su aplicación no estará disponible para ese dispositivo excluido en Market. Esto está destinado principalmente a ayudar a los desarrolladores a ofrecer la mejor experiencia posible al usuario, 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 programador, puede ver la lista de todos los dispositivos. Esto carga más de 2.000 casillas de verificación del tipo de control deslizante que se configuran inicialmente como habilitadas. Desafortunadamente, no parece haber una opción "disable / enable all" en la interfaz …

… En su lugar, utilicé la herramienta de inspector de Firebug para obtener el nombre de clase de estos objetos deslizantes (no puedo recordar lo que era ahora – dos acrónimos en mayúsculas aleatorias), y luego ejecutar una expresión en la consola de Javascript que cambiaba 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 durante un minuto o dos, pero después, cada teléfono se marcó como no compatible. A continuación, puede habilitar los teléfonos que necesita para realizar la instalación.

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

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

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útalo desde tu navegador Javascript Console.

Bueno, puedes hacerlo de una manera lógica.

Primero los detalles del hardware usando getResources().getConfiguration() . Ahora usted puede dar la condición si su hardware es de este nombre O el nombre entonces continúa.

He escrito un script para deshabilitar dispositivos por marca basado en el script de KrisWebDev.

Usted tiene que localizar el <ol> de su marca elegida, editar y añadir id="sarasa" a él, a continuación, ejecute este script para desactivar todos:

 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 utilizando diferentes partes de las respuestas de esta página (gracias @Desty y @MichaelDePhillips). El script es rápido (entre 100 y 200ms en mi computadora) y puede especificar una marca para no cambiar. Aquí está el script:

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

Este es mi primer javascript, todos los comentarios son bienvenidos.

Cuando se va a subir 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 manera puede filtrar los dispositivos por la fabricación y el nombre del modelo.

A medida que el diseño de la consola de Google Play evolucionó, no conseguí hacer el trabajo anterior. Observo que sólo el primer estado de casilla de verificación se ha modificado. Parece que cada clic hacer un POST para google servidor. Después de algunos intentos encontré que la adición de un tempo permite hacer bucle en las casillas de verificación.

Aquí está el Javascript que trabaja para mí. Simplemente copie el pasado en la consola de su navegador (probado con CHROME y FIREFOX). Tenga en cuenta que tendrá que reemplazar "Siguiente página" en el botón querySelector de la siguiente página si su idioma no es el 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 [tipo = casilla de verificación]: checked: enabled' with 'input [tipo = checkbox]: checked: disabled'

  • Es posible liberar una aplicación actualizada mediante la firma con un certificado diferente de la que se utilizó originalmente
  • ¿Cómo instalar Android Market App en el emulador?
  • Ambiente de Desarrollo OUYA
  • pre-registrar la aplicación en google play
  • ¿Hay una lista de elementos gráficos necesarios para las aplicaciones de iOS en la tienda de aplicaciones?
  • ¿Una cuenta de prueba de Android Market se carga realmente en la compra en la aplicación?
  • Error de instalación de Google Play -505
  • ¿Por qué Google reproduce ocultar android.permission.VIBRATE para algunas aplicaciones?
  • Manifiesto de Android Restringir a las tabletas
  • Keystore y alias - ¿hay un uso a varios alias?
  • Mi aplicación no está disponible para dispositivos tablet en Google Play
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.