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.
- Google Play Store: la página de mi aplicación no muestra los iconos de las tablas de clasificación y los logros.
- Android: no se puede importar BaseGameUtils con éxito en Eclipse
- Cómo subir dos archivos apk con niveles de API de dif de una sola aplicación de Android
- Flujo de referencia de Google Play Google Analytics
- Mi aplicación no está visible en Google Play Store para Samsung Galaxy Note 4
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).
- Facturación en la aplicación de Android: ¿cuál es la "carga útil del desarrollador" y cómo funciona el botón "Comprar"?
- Google play muestra todas las capturas de pantalla
- Google Play: ¿actualiza una aplicación no publicada para los usuarios existentes, pero no para los nuevos usuarios?
- Hacer que el proveedor de ubicación fusionado LocationClient sea más fácil de usar
- Google Play Store que muestra el botón Abrir en lugar del botón Actualizar
- Límite de tamaño de archivo de Android Market. 50MB o 4GB?
- No se puede instalar mi aplicación recientemente lanzada: Código de error: -504
- Android Diseño principios de diseño
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:
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
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.
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'
- Ocultar teclado blando al perder el foco
- Targeting / Developing para múltiples plataformas móviles con un solo lenguaje de programación (C #)? ¿Coste-beneficio?