Android Historial de navegación dejando fuera sólo algunos sitios

Usando la función de abajo estoy tratando de obtener la ÚLTIMA URL que el usuario visitó desde Chrome Browser en su teléfono Android. Esta función funciona muy bien para la mayoría de los sitios, pero no funciona para "www.reddit.com".

La variable de url siguiente se actualiza si voy a "www.google.com", "www.hulu.com" o "www.kayak.com" pero no se actualizará si voy a "www.reddit.com".

Se actualiza si voy a "m.reddit.com". El mismo problema con facebook, detecta m.facebook.com pero no www.facebook.com .

No entiendo ¿Cuál es la diferencia entre "www.reddit.com" y "m.reddit.com" que Android registra uno, pero no el otro.

¿Qué cambio necesito en el código para detectar TODOS LOS ACCESOS DE URL?

 public String returnLastChromeURL(int browserCode) { String[] proj = new String[] { Browser.BookmarkColumns.DATE, Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; String dateTime; Uri uriCustom = Uri .parse("content://com.android.chrome.browser/bookmarks"); String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, // 1 = bookmark try { Cursor mCur = mContext.getContentResolver().query(uriCustom, proj, sel, null, BookmarkColumns.DATE + " ASC"); mCur.moveToFirst(); mCur.moveToLast(); dateTime = mCur.getString(mCur .getColumnIndex(Browser.BookmarkColumns.DATE)); title = mCur.getString(mCur .getColumnIndex(Browser.BookmarkColumns.TITLE)); url = mCur.getString(mCur .getColumnIndex(Browser.BookmarkColumns.URL)); mCur.close(); } catch (Exception e) { dateTime = String.valueOf(System.currentTimeMillis()); title = ""; url = "empty_list"; } return url; } 

Algunos más información de mi depuración:

  • Cuando intento esto en un emulador de Genymotion, todos los Web site (incluyendo sitios como www.reddit.com consiguen detectado bien). En un teléfono real www.reddit.com no se detecta.
  • Sitios que el código detectará OK: www.kayak.com' (redirects to www.kayak.com/mn ), www.hulu.com (loads mobile version of site though url stays www.hulu.com), www.google. Com (la misma historia que el hulu).

Parece que los sitios que cargan la versión de escritorio pura del sitio, no se detectan

Esto se debe a que nunca visita el dominio de escritorio en tu móvil, de hecho, cada vez que visites facebook en tu móvil (o cualquier otro sitio web que detecta tu navegador), automáticamente te redirigirá al sitio web para móviles, las redirecciones no se guardarán en la historia a menos que Carga de página, lo que nunca sucede.

Comprueba la siguiente captura de pantalla de mi verdadera N7100 galaxy note2 y mi navegador de Windows:

Si está utilizando el navegador de cromo puede solicitar sitio web de escritorio (que no es una solución fiable como el usuario tendrá que hacer esto manualmente).

Otra solución es anular el método de redirección que no funcionará debido a la política XSS .

Por lo que una mejor solución es falsificar su navegador y convencer al servidor de que está utilizando un navegador de escritorio comprobar esta respuesta .

El simulador en el escritorio utiliza el agente de usuario del dispositivo que contará como navegador de escritorio. captura de pantalla

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.