Cómo escuchar una copia en Android

Para familiarizarme un poco más con los proveedores de contenido de Android, estoy creando una pequeña aplicación de gestor de portapapeles. Su funcionalidad principal es simplemente agregar lo que copie a una base de datos para mostrar. Estoy un poco familiarizado con el marco de Portapapeles de Android, pero lo que no estoy seguro de cómo hacer es escuchar copiar "eventos" para saber que un nuevo elemento debe añadirse al portapapeles.

Para aclarar, necesito poder agregar un registro a la base de datos siempre que el usuario copie algo. ¿Cómo hago esto?

Si está utilizando el nivel 11 de la API (3.0) o superior, puede utilizar addPrimaryClipChangedListener que está documentado aquí y aquí hay algunos ejemplos de uso aquí .

¿Qué API tiene? Esta respuesta: Listener para cambiar el contenido del Portapapeles? Parece sugerir que hay una forma de Android 3.0 y superior, pero no inferior, por desgracia.

La única otra cosa que puedo pensar es hacer un servicio, consultando el portapapeles de vez en cuando para ver si ha cambiado o tiene nuevo texto. Esto se puede hacer fácilmente usando ClipBoardManager.

Ponga dentro de su clase:

 ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() { public void onPrimaryClipChanged() { // this will be called whenever you copy something to the clipboard } }; 

Ponga esto en el método onCreate:

 ClipboardManager clipboard = (ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); clipboard.addPrimaryClipChangedListener(mPrimaryChangeListener); 

Eso es todo. Espero haberte ayudado.

  • ¿Cómo difieren las operaciones popBackStack () y replace ()?
  • Gradle imprime la advertencia aunque se selecciona SuppressWarnings
  • ¿Es posible detener un hilo cuando el usuario pulsa la tecla de retroceso?
  • "Los animadores sólo se pueden ejecutar en subprocesos Looper" durante las pruebas de instrumentación en dispositivo
  • No se puede comunicar Google Datastore con la aplicación Android en Android Studio
  • No se puede convertir una representación en un objeto de clase java.lang.String
  • Retrofit 2.0 lanzando "IllegalArgumentException: los parámetros @Field solo se pueden usar con la codificación de formularios". ¿Cómo hacer la consulta correcta de la API y arreglarlo?
  • Excepción de URL malformada de Java
  • ¿Por qué Androidite SQLite puede almacenar doble valor (java 8 bytes) en la columna de flotación
  • No se puede iniciar AVD en el emulador. Estudio androide
  • Ejemplos de FacebookSDK Ejemplo no funciona en el teléfono Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.