¿Hay alguna manera de que una aplicación de Android cuente en el código de Java si se está ejecutando en GoogleTV frente a tabletas o teléfonos?Identificar GoogleTv desde la aplicación de Android
Respuesta
El siguiente enlace puede ayudarlo: Google TV Android Developer's Guide Para optimizar su aplicación para un televisor de Google, simplemente agregue un límite adicional para pantallas grandes. Sin embargo, si desea determinar el dispositivo que está utilizando actualmente la aplicación en tiempo de ejecución, puede probar el método hasSystemFeature(). Con esto puede probar ciertas características de hardware que son exclusivas de Google TV (por ejemplo, podría probar FEATURE_TOUCHSCREEN, ya que cualquier dispositivo, excepto Google TV, tiene uno < => si la característica no es compatible, la aplicación probablemente se está ejecutando en un televisor) .
¿No hay teléfonos con trackball de gama baja que tampoco tienen pantalla táctil? – miguel
[Aquí] (http://code.google.com/tv/android/docs/gtv_android_features.html) hay algunas características más que no existen en los televisores. Si los combina, puede estar seguro de en qué tipo de dispositivo se ejecuta su aplicación. Pero no puedo decir nada con seguridad, ya que no tengo un Google TV solo. –
@miguel: en este momento, todos los teléfonos con Android Market legítimamente en ellos tienen una pantalla táctil, como lo exige el CDD. Sin embargo, eso no excluye teléfonos sin Market, teléfonos con copias pirateadas del Market o futuros cambios en el CDD. – CommonsWare
Así es como recopilo información útil para los comentarios. No estoy al tanto si es posible detectar el tipo de dispositivo (teléfono, frente a la mesa, frente a Google TV), pero es posible construir una especie de base de datos de la cartografía y la Información de partido en contra de ella
private String getDeviceInfo() {
final StringBuilder sb = new StringBuilder("\n\n---\n");
try {
sb.append("Version: ").append(getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName)
.append('\n');
} catch (final NameNotFoundException e) {
// Shouldn't happen but if did - ignore
Log.e(TAG, "failed to get app version", e);
}
sb.append("Model: ").append(Build.MODEL).append('\n');
sb.append("Brand: ").append(Build.BRAND).append('\n');
sb.append("Device: ").append(Build.DEVICE).append('\n');
sb.append("Display: ").append(Build.DISPLAY).append('\n');
sb.append("Hardware: ").append(Build.HARDWARE).append('\n');
sb.append("Manufacturer: ").append(Build.MANUFACTURER).append('\n');
sb.append("Host: ").append(Build.HOST).append('\n');
sb.append("Release: ").append(Build.VERSION.RELEASE).append('\n');
sb.append("Board: ").append(Build.BOARD).append('\n');
sb.append("Radio: ").append(Build.RADIO).append('\n');
sb.append("Product: ").append(Build.PRODUCT).append('\n');
return sb.toString();
}
Usted puede pedir el gestor de paquetes:
/**
* Test if this device is a Google TV.
*
* See 32:00 in "Google I/O 2011: Building Android Apps for Google TV"
* http://www.youtube.com/watch?v=CxLL-sR6XfM
*
* @return true if google tv
*/
public static boolean isGoogleTV(Context context) {
final PackageManager pm = context.getPackageManager();
return pm.hasSystemFeature("com.google.android.tv");
}
Plus esta línea manifiesta:
<uses-feature android:name="com.google.android.tv" android:required="false" />
Esto ya no funciona – Prizoff
de acuerdo con la oficial docs:
La forma recomendada de determinar si su aplicación se está ejecutando en un dispositivo de TV es utilizar el método UiModeManager.getCurrentModeType() para comprobar si el dispositivo se está ejecutando en modo de televisión. El siguiente código de ejemplo muestra cómo comprobar si su aplicación se está ejecutando en un dispositivo de TV:
public static final String TAG = "DeviceTypeRuntimeCheck";
UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
Log.d(TAG, "Running on a TV Device");
} else {
Log.d(TAG, "Running on a non-TV Device");
}
¡Me funciona bien! –
- 1. Cómo reiniciar la aplicación de Android desde la aplicación
- 2. ¿Cómo twittear desde la aplicación de Android?
- 3. Comprar con Android desde la aplicación: RESULT_ITEM_UNAVAILABLE
- 4. Inicie Android Market desde la aplicación
- 5. Android: inicie Firefox desde la aplicación
- 6. ¿Cómo identificar un número de dyna heroku desde dentro de la aplicación?
- 7. Cómo llamar a una aplicación Android desde otra aplicación Android
- 8. Android desde la aplicación de verificación de facturación
- 9. Intercepción de solicitudes HTTP enviadas desde la aplicación de Android
- 10. Iniciar la aplicación de Android desde el código
- 11. Android: iniciar nueva actividad desde la clase de aplicación
- 12. Acerca de iniciar la aplicación Android desde una URL
- 13. Detener una aplicación de Android desde la consola
- 14. iniciar una aplicación desde la barra de notificaciones en android
- 15. Cómo invocar la calculadora de Android desde una aplicación
- 16. ¿Podemos publicar en Google plus desde la aplicación de Android?
- 17. Obtenga referrer después de instalar la aplicación desde Android Market
- 18. Lanzar aplicación personalizada de Android desde el navegador Android
- 19. Android: Cómo transferir una aplicación desde la misma aplicación a otro teléfono Android
- 20. Calling Lua script desde una aplicación Android
- 21. Invocar Adobe Reader desde mi aplicación Android
- 22. Enviar MMS desde Mi aplicación en android
- 23. Android Enlace a Market desde otra aplicación
- 24. ¿Iniciar la aplicación para Android desde el mensaje SMS/MMS?
- 25. Android, ¿es posible ejecutar la aplicación desde el marcador?
- 26. ¿Puedo mostrar la transmisión actual de TV en vivo en una aplicación de GoogleTV a pantalla completa?
- 27. Bloquear/desbloquear una aplicación desde mi aplicación: Android
- 28. ¿Cómo identificar las pérdidas de memoria en Android?
- 29. Android ¿Cómo identificar el operador en la red CDMA?
- 30. android: ¿cómo abro otra aplicación desde mi aplicación?
Dado que, en el momento de escribir esto, no podemos escribir aplicaciones para Google TV, la respuesta es "si su El código de Java se está ejecutando, no está en Google TV ". Recomiendo preguntar nuevamente en algún momento después de que podamos escribir aplicaciones para Google TV. – CommonsWare
Tengo uno de los dispositivos "fishtank". Editaré la pregunta para reflejar eso. – miguel