Desarrollo de un monitor web en Android

Me gustaría supervisar / filtrar los sitios web que un usuario abre en Android.

Sé cómo recuperar la última URL visitada (en el navegador predeterminado de Android) usando un ContentObserver en el historial del navegador …

private static class BrowserObserver extends ContentObserver { private static String lastVisitedURL = ""; private static String lastVisitedWebsite = ""; //Query values: final String[] projection = new String[] { Browser.BookmarkColumns.URL }; // URLs final String selection = Browser.BookmarkColumns.BOOKMARK + " = 0"; // history item final String sortOrder = Browser.BookmarkColumns.DATE; // the date the item was last visited public BrowserObserver(Handler handler) { super(handler); } @Override public void onChange(boolean selfChange) { onChange(selfChange, null); } @Override public void onChange(boolean selfChange, Uri uri) { super.onChange(selfChange); //Retrieve all the visited URLs: final Cursor cursor = getContentResolver().query(Browser.BOOKMARKS_URI, projection, selection, null, sortOrder); //Retrieve the last URL: cursor.moveToLast(); final String url = cursor.getString(cursor.getColumnIndex(projection[0])); //Close the cursor: cursor.close(); if ( !url.equals(lastVisitedURL) ) { // to avoid information retrieval and/or refreshing... lastVisitedURL = url; //Debug: Log.d(TAG, "URL Visited: " + url + "\n"); } } } 

Para registrar el ContentObserver utilizo:

 browserObserver = new BrowserObserver(new Handler()); getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true, browserObserver); 

Y para cancelar su registro:

 getContentResolver().unregisterContentObserver(browserObserver); 

Esto funciona. Sin embargo, de esta manera, puedo analizar las URL sólo después de que el navegador las haya cargado.

Ahora, ¿hay alguna manera de recuperar las URL antes de que el navegador las cargue en Android?

  • ¿Cómo detecta la aplicación Android SuperUser que una aplicación solicite root?
  • Buenas prácticas: ¿Cómo puedo proteger las solicitudes Http (por ejemplo, inicio de sesión) desde una aplicación móvil
  • ¿Cómo lograr alta seguridad en aplicaciones móviles?
  • ¿Cómo evitar mostrar la pantalla de consentimiento en nuestras propias aplicaciones nativas cuando la autenticación externa?
  • Leyendo ActivityManager-logs en un dispositivo de Jelly Bean?
  • Keytool's -storepass vs. -keypass - ¿Por qué 2 contraseñas?
  • Instalación / Acceso a Certs para VPN / WIFI mediante programación en Android
  • ¿Cómo puedo importar un certificado de la CA en Android 4.4.2 en el emulador?
  • ¿Cómo puedo verificar si otra aplicación del sistema es genuina?
  • ¿Cómo guarda de forma segura una orden en la nube, si no puede verificar el pago desde la nube?
  • Hacer que el teclado Android resista a los ataques de KeyLogger
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.