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 …
- ¿Cómo almacenar módulo, exponente público y exponente privado de forma segura en Android?
- Cómo evitar que los elementos de compra de la aplicación de Android se rompan
- Poste HTTP seguro en Android
- Comprueba si la solicitud HTTP proviene de mi aplicación Android
- ¿Cómo puedo restringir el acceso a mi API REST sólo a clientes autorizados?
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 validar el origen de una invocación de servicio web
- ¿Hay alguna forma de comprobar si la firma de una aplicación está depurada o publicada?
- Construcción de BoringSSL y Conscrypt y agrupación con Android apk
- Evitar el "cliente falso" para la aplicación ios
- Secretos de OAuth en aplicaciones para móviles
- ¿Cómo puedo verificar si otra aplicación del sistema es genuina?
- Autenticar la aplicación HTML5 envuelta con Phonegap (o equivalente)
- Proteger la cadena constante contra la ingeniería inversa
- prefijo de espacio de nombres inesperado con barra de acción
- Android: Spinner no obtiene el enfoque correctamente