¿Cómo detectar HTC Sense?

¿Puedo detectar de alguna manera si mi aplicación se está ejecutando en HTC Sense?

Más generalmente, el problema es, que tengo un botón con la costumbre drawable. Es algo muy similar al conmutador de cuentas en la parte superior derecha de la aplicación de Gmail. Cuando se presiona o enfoca, el botón tiene resaltado naranja. Pero eso no se ve bien en HTC Sense – porque el color de resaltado estándar hay verde.

Vamos a ver las cadenas android.os.Build No estoy seguro de lo que la gente de HTC utilizar una combinación para indicar un dispositivo HTC sentido ..

Aquí está un acoplamiento que sugiere una manera de detectar Sentido de HTC en el dispositivo, cerca de 1/3 la manera abajo de la discusión. He probado en Desire and Desire Z.

El código está abajo (de un usuario: David):

private static final String SENSE_UI_LAUNCHER_NAME = "com.htc.launcher.Launcher"; private static Boolean senseUI; public static final boolean isSenseUI(Context context) { if (senseUI == null) { senseUI = false; PackageManager packageManager = context.getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); List<ResolveInfo> list = packageManager.queryIntentActivities( intent, PackageManager.MATCH_DEFAULT_ONLY); for (ResolveInfo info : list) { if (info.activityInfo != null && SENSE_UI_LAUNCHER_NAME .equals(info.activityInfo.name)) { senseUI = true; break; } } } return senseUI; } 

Creo que Android ha proporcionado una mejor manera para que usted resuelva esto que haciendo una comprobación para Sense, y trabajará para cada fabricante del dispositivo. HTC no es el único que ha cambiado los colores en los selectores. Creo que Sony Ericsson tiene un transparente blanco / azul, Motorola cambió a rojo en su MotoBlur UI, y Garmin-Asus lo cambió a azul en la suya sólo para nombrar unos pocos.

Lo que debes hacer es anular el atributo android:background en tu botón de imagen y usar un drawable propio en vez de confiar en el fondo del framework drawable. Si aún no está familiarizado con ellos, probablemente también desee echar un vistazo a los selectores cuando cree su fondo personalizado, por lo que aún obtendrá las claves de color presionadas / seleccionadas / no seleccionadas.

Si tiene varios botones en los que desee hacer esto, puede utilizar estilos y temas para ayudar con esto. Los dos lugares principales que querrá hacer referencia desde la documentación de Android son " Aplicación de estilos y temas " y " Recursos de estilo "

¡Espero que ayude!

Usted podría intentar buscar una aplicación de HTC / Sense que se basa en el marco de Rosie y no se puede desinstalar – o tal vez el propio marco Rosie estar presente sería suficiente. Este hilo muestra cómo obtener una lista de aplicaciones instaladas.

Creo que el siguiente enfoque debe seguirse – definimos android:background , algo así como

 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/pressed_application_background" /> <item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/focused_application_background" /> <item android:state_focused="true" android:state_window_focused="false" android:drawable="@android:color/transparent" /> </selector> 

Pero aquí debemos referirnos a algunos recursos estándar, no a las imágenes de nuestra aplicación. Sólo tienes que averiguar qué identificaciones tienen.

Esto es un poco tarde, pero creo que esta solución podría funcionar en algunos casos de personas.

Intenté usar Build.MANUFACTURER para comprobar si es un dispositivo de HTC. Esta solución no funciona en algunos dispositivos y podemos asegurarnos de que los dispositivos están ejecutando Sense de todos modos

Si observa, puede ver Play Store necesita comprobar qué funciones están disponibles en el teléfono para mostrar las aplicaciones correctas, y HTC Sense es una de las características!

Para obtener todas las funciones disponibles:

 public FeatureInfo[] getSystemAvailableFeatures(Context context) { FeatureInfo[] features = context.getPackageManager().getSystemAvailableFeatures(); for (FeatureInfo f : features) { Log.d("Features", "feature " + f.name); } return features; } 

Esto devolverá algo como esto:

 com.example D/Features﹕ Feature android.hardware.wifi com.example D/Features﹕ Feature android.hardware.location.network com.example D/Features﹕ Feature com.sec.android.mdm com.example D/Features﹕ Feature android.hardware.location com.example D/Features﹕ Feature android.hardware.sensor.gyroscope com.example D/Features﹕ Feature android.hardware.screen.landscape com.example D/Features﹕ Feature com.htc.software.Sense5.0 

¡Observe la última línea! Puede usarlo para comprobar la versión de sentido HTC

Espero eso ayude

  • Android UI - Android vista de desplazamiento horizontal
  • ¿Hay una manera más simple / mejor de poner una frontera / contorno alrededor de mi TextView?
  • Cambio del borde de enfoque de EdiciónTexto
  • Crear un botón en 3D en forma de android
  • Actualizar interfaz de usuario mientras trabaja en el fondo
  • BackgroundColorSpan con relleno adicional, vertical
  • Problema de TabActivity de la interfaz de usuario de Android
  • Creación de una vista personalizada
  • Cómo crear Android La vista de cuadrícula de Google Play como Widget con imágenes de diferentes tamaños cargadas dinámicamente
  • Creación de una vista de configuración equivalente a las vistas del sistema
  • Obtener / recoger una imagen de la aplicación de Android integrada en la Galería mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.