GetDefaultTracker () de una clase que extiende InputMethodService?

Tengo una aplicación de teclado para Android que estoy desarrollando, y muestra símbolos simples en lugar de lenguaje, por lo que dicho, me encantaría poder seguir la actividad del usuario ya que no hay información sensible o palabras implicadas.

El problema es que InputMethodService de Android no extiende la Application , que es lo que le permite acceder al Android SDK de Google Analytics (posible error de redacción, aquí, no dude en corregirme).

He seguido la guía aquí para empezar, y este es el código al que he hecho referencia para adquirir el objeto Tracker :

 /* * Copyright Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.samples.quickstart.analytics; import android.app.Application; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.Tracker; /** * This is a subclass of {@link Application} used to provide shared objects for this app, such as * the {@link Tracker}. */ public class AnalyticsApplication extends Application { private Tracker mTracker; /** * Gets the default {@link Tracker} for this {@link Application}. * @return tracker */ synchronized public Tracker getDefaultTracker() { if (mTracker == null) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG mTracker = analytics.newTracker(R.xml.global_tracker); } return mTracker; } } 

Todo esto es fantástico para el seguimiento de la actividad principal de mi aplicación, que es básicamente una vista que contiene un conjunto corto de instrucciones con un par de anuncios y un acceso directo de configuración.

Como he dicho antes, me gustaría rastrear el teclado , y cómo hacerlo no es exactamente obvio ya que InputMethodService no expone Google Analytics.

¿Cómo puedo utilizar el SDK Android de Google Analytics dentro de una clase que extiende InputMethodService pero no Application ?

Por favor dígame si no he hecho mi problema claro, actualizaré el poste cualquier manera que pueda.

One Solution collect form web for “GetDefaultTracker () de una clase que extiende InputMethodService?”

No es necesario que tenga una Application para utilizar el SDK de Android de Google Analytics.

El ejemplo agrega el método de ayuda getDefaultTracker dentro de la clase Application para centralizar y facilitar el acceso al rastreador predeterminado. En la mayoría de los casos esto sería la mejor solución posible, por esta razón el ejemplo recomienda este enfoque. Pero hay algunas excepciones donde esta solución no es factible, como en InputMethodService .

Como se puede ver en la documentación el parámetro del método getInstance es un Context :

Public static GoogleAnalytics getInstance (Contexto contextual)

Obtiene la instancia de GoogleAnalytics, creándola cuando sea necesario. Es seguro llamar a este método de cualquier hilo

Por esta razón, puede utilizar el mismo método getDefaultTracker directamente dentro de su InputMethodService . Por ejemplo:

 public class InputMethodServiceSample extends InputMethodService { private Tracker mTracker; /** * Gets the default {@link Tracker} for this {@link Application}. * @return tracker */ synchronized public Tracker getDefaultTracker() { if (mTracker == null) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG mTracker = analytics.newTracker(R.xml.global_tracker); } return mTracker; } } 

Entonces usted puede utilizar los métodos getDefaultTracker en cada método de su servicio.

  • Error de Android aleatoriamente java.lang.NoClassDefFoundError: com.facebook.internal.Utility
  • ¿Cómo puedo detectar el uso de tamaño de montón de una aplicación de Android?
  • Clase de aplicación que se ejecuta en el hilo de interfaz de usuario o?
  • Abstracción con Java en Android
  • Cómo revertir la imagen vuelta de la cámara frontal en android?
  • Envío de un mensaje sencillo de Servicio a Actividad
  • Gradlew appengineEndpointsInstallClientLibs tiene error La ejecución falló para la tarea ': compileJava'. > Versión de origen no válida: 1.7
  • Cómo dibujar liso / camino redondeado?
  • Prueba de unidad de presentador con RxJava CompositeSubscription
  • La regla de la lechada personalizada no aparece en el estudio de eclipse / android
  • La importación com.google.api.client no se puede resolver en Eclipse
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.