Cómo obtener la URL actual en un navegador de Android

Estoy buscando una forma de obtener la URL actual que un usuario está visitando en la aplicación del navegador android. Me di cuenta de que puedo obtener la última URL visitada de la Browser.BOOKMARKS_URI datos Browser.BOOKMARKS_URI utilizando la siguiente técnica:

 Cursor cursor = context.getContentResolver().query(Browser.BOOKMARKS_URI, Browser.HISTORY_PROJECTION, null, null, Browser.BookmarkColumns.DATE + " DESC"); cursor.moveToNext(); String url = cursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX); cursor.close(); 

El problema con esto es que Browser.BOOKMARKS_URI db no se actualiza cuando el usuario presiona de nuevo para navegar a la página anterior en el explorador y la consulta devuelve resultados incorrectos.

Vea el siguiente ejemplo:

  1. El usuario accede a www.google.com -> Consulta devuelve "www.google.com"
  2. El usuario navega a www.imdb.com -> Consulta devuelve "www.imdb.com"
  3. El usuario pulsa de nuevo para volver a www.google.com -> Consulta devuelve "www.imdb.com" (!!)

¿Alguien tiene alguna idea de cómo devolver el url correcto un usuario está viendo?

Creo que no has pasado por el siguiente enfoque. Una vez que lo intente! Puede acceder al historial de navegación de la misma manera que lo hace para otros ContentProviders. Además del historial de navegación, también puede obtener una lista de marcadores.

 Cursor webLinksCursor = getContentResolver().query(Browser.BOOKMARKS_URI, Browser.HISTORY_PROJECTION, null, null, Browser.BookmarkColumns.DATE + " DESC"); int row_count = webLinksCursor.getCount(); int title_column_index = webLinksCursor.getColumnIndexOrThrow(Browser.BookmarkColumns.TITLE); int url_column_index = webLinksCursor.getColumnIndexOrThrow(Browser.BookmarkColumns.URL); if ((title_column_index > -1) && (url_column_index > -1) && (row_count > 0)) { webLinksCursor.moveToFirst(); while (webLinksCursor.isAfterLast() == false) { if (webLinksCursor.getInt(Browser.HISTORY_PROJECTION_BOOKMARK_INDEX) != 1) { if (!webLinksCursor.isNull(url_column_index)) { Log.i("History" , "Last page browsed " + webLinksCursor.getString(url_column_index)); break; } } webLinksCursor.moveToNext(); } } webLinksCursor.close(); 

Y usted necesita el permiso también

 com.android.browser.permission.READ_HISTORY_BOOKMARKS 
  • Android 4.4 KitKat - ¿Cómo puedo evitar el nuevo selector de archivos?
  • Imagen de visualización de la aplicación de Android desde la URL
  • Android detecta cambio de URL de webview
  • ¿Detectar si url especificada es una imagen en Android?
  • Android: cita única escapada misteriosa en nombre de lugar codificado Uri
  • Solicitud por lotes utilizando Retrofit
  • Solicitud de URL de visualización web de Android con cadena de consulta
  • Android: Cargar imagen desde la URL web
  • ¿Cómo hago una solicitud http usando cookies en Android?
  • ¿Cómo puedo analizar xml de url en android?
  • Android ¿Cuál es la mejor manera de almacenar URL? Miembros de datos estáticos o en String.xml?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.