Vermutlich wird die Anwendung aus dem Android Market installiert, so dass Sie ein in der Download-URL übergebenes Website-Cookie nicht zuordnen können (oder, zweifellos, genau das tun).
Können Sie in diesem Fall das URL-Rewriting verwenden? Oder zumindest eine eindeutige ID in jeden Zugriff auf Ihre Website einfügen, die zweifellos einem Cookie entspricht. Wenn der Benutzer dann die Anwendung herunterlädt und sie zum ersten Mal ausführt, kann sie auf den Browserverlauf zugreifen und nach dieser eindeutigen ID suchen, sie speichern (falls sie existiert) und sie in nachfolgende Serveranfragen aufnehmen.
int occasions=0;
String sessionId = null;
while (cursor.moveToNext()) {
String urlVisited=cursor.getString(cursor.getColumnIndex(BookmarkColumns.URL));
Log.d("Match",urlVisited);
if (urlVisited.contains("www.mysite.com") && urlVisited.contains("MYUNIQUEID")) {
//There's a unique ID. Trim it out of the query string.
sessionId=urlVisited.substring(urlVisited.indexOf("MYUNIQUEID")+10);
if (sessionId.indexOf('&')>-1) {
sessionId=sessionId.substring(0,sessionId.indexOf('&'));
}
occasions++;
}
}
Log.d("Match","occasions="+occasions);
if (sessionId!=null) {
getSharedPreferences("com.mysite", MODE_PRIVATE).edit().putString("SITEID", sessionId);
}
Das scheint ein bisschen wie ein Hack zu sein - vielleicht weil es einer ist - aber es sollte funktionieren, und mir fällt kein anderer sicherer Weg ein, Browser- und benutzerdefinierte Client-Anfragen zu verknüpfen. Wenn der Benutzer seinen Verlauf oder seine Cookies löscht, bevor er die Anwendung herunterlädt und ausführt, wird das oben genannte natürlich nicht funktionieren.
Ich hoffe, das ist eine Hilfe.