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.

  • ActiveAndroid Excepción SQLite 'No such table'
  • Cómo anular la barra de acción de nuevo en el botón de android?
  • El recurso colors.xml no funciona
  • ¿Cómo puedo cambiar el color de los clústeres en mi mapa de Google para Android?
  • Error "no se pudo obtener wglGetExtensionsStringARB"
  • Android MultiAutoCompleteTextView - visualización de vistas personalizadas en ella
  • OnClickListener en Android Studio
  • Convertir valores de mapa en matriz de cadenas
  • Detectar una excepción de entrada errónea
  • Calendario devuelve la fecha actual incorrecta android
  • Vista de Google Street + inclinación del dispositivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.