2015-04-24 17 views
6

Son birkaç (5 veya 10) dakika boyunca bir Android telefondaki tüm tarayıcıların tarama geçmişini yakalamak istiyorum. i kullanıyorum kodudurSon birkaç dakika boyunca Android tarayıcılardan tarama geçmişini kaydetme

Calendar ci = Calendar.getInstance(); 
String enddate = "" + ci.get(Calendar.YEAR) + "-" 
     + (ci.get(Calendar.MONTH) + 1) + "-" 
     + ci.get(Calendar.DAY_OF_MONTH) + " " + ci.get(Calendar.HOUR) 
     + ":" + ci.get(Calendar.MINUTE) + ":" + ci.get(Calendar.SECOND); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
ci = Calendar.getInstance(); 
ci.add(Calendar.MINUTE, -5); 
String startdate = "" + ci.get(Calendar.YEAR) + "-" 
     + (ci.get(Calendar.MONTH) + 1) + "-" 
     + ci.get(Calendar.DAY_OF_MONTH) + " " + ci.get(Calendar.HOUR) 
     + ":" + ci.get(Calendar.MINUTE) + ":" + ci.get(Calendar.SECOND); 
long startdates = 0; 
long enddates = 0; 
try { 
    Date endDate = (Date) new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 
      .parse(enddate); 
    Date startDate = (Date) new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 
      .parse(startdate); 
    System.out.println("End date=" + endDate.getTime()); 
    startdates = startDate.getTime(); 
    enddates = endDate.getTime(); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 
String[] proj = new String[] { 
     Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL, 
     Browser.BookmarkColumns.DATE 
}; 

Uri uriCustom = Uri 
     .parse("content://com.android.chrome.browser/bookmarks"); 
// 0 = history, 1 = bookmark 
String sel = Browser.BookmarkColumns.BOOKMARK + " = 0" + " AND " 
     + Browser.BookmarkColumns.DATE + " BETWEEN ? AND ?"; 
Cursor mCur = getContentResolver().query(uriCustom, proj, sel, 
     new String[] { 
       "" + startdates, "" + enddates 
     }, null); 
mCur.moveToFirst(); 
JSONObject obj; 
JSONArray jarray = new JSONArray(); 
String title = ""; 
String burl = ""; 
String date_time = ""; 
if (mCur.moveToFirst() && mCur.getCount() > 0) { 
    while (mCur.isAfterLast() == false) { 

     title = mCur.getString(mCur 
       .getColumnIndex(Browser.BookmarkColumns.TITLE)); 
     burl = mCur.getString(mCur 
       .getColumnIndex(Browser.BookmarkColumns.URL)); 
     date_time = mCur.getString(mCur 
       .getColumnIndex(Browser.BookmarkColumns.DATE)); 
     try { 
      obj = new JSONObject(); 
      obj.put("title", title); 
      obj.put("url", burl); 
      obj.put("date", date_time); 
      jarray.put(obj); 
     } catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 
     mCur.moveToNext(); 
     System.out.println(title); 
    } 

} 

i

String sel = Browser.BookmarkColumns.BOOKMARK; // 0 = history, 1 = bookmark 

için

String sel = Browser.BookmarkColumns.BOOKMARK + " = 0" +" AND " +Browser.BookmarkColumns.DATE+ " BETWEEN ? AND ?"; // 0 = history, 1 = bookmark 

değiştirmek ama son için tarama geçmişini gerekirse ben krom tarayıcıdan tüm tarama geçmişini alabilirsiniz veritabanını güncellemek için birkaç dakika. Ben android gelişmekte yeni. Herhangi bir yardım büyük takdir edilecektir. Şimdiden teşekkürler ..

+0

Burada sorun, saat biçimindedir. "Calendar.HOUR" ile zaman almanın 12 saat biçiminde olduğunu, sonra bunu "Calendar.HOUR_OF_DAY" olarak değiştirdim. Şimdi son 5 dakika boyunca tarayıcıdan tarayıcı geçmişini alıyorum. Bir sonraki sorum: belirli bir android cihazda yüklü olan tüm tarayıcılardan tarama geçmişini almanın bir yolu var mı? –

cevap

1

TÜM tarayıcılardan geçmişi alamıyorsunuz, sadece varsayılan tarayıcı için (telefonla birlikte gelen) geçmişini alabilirsiniz.

Diğer tarayıcı bu bilgiyi korumak için özel bir kapsam kullanmaktadır, API yoktur.

parametreler bir zaman damgası (uzun), bir yyyy/aa/gg biçiminde olduğu "?" SEL ihtiyacı doldurmak için.

Hemen yapın:

final Calendar ci = Calendar.getInstance(); 
final long endDate = ci.getTimeInMillis(); 
ci.add(Calendar.MINUTE, -5); 
final long startDate = ci.getTimeInMillis(); 
final String[] paramsSel = new String[] { String.valueOf(startDate), String.valueOf(endDate) }; 

Not: Bir şamandıra döküm zaman örneğin, yanlış olabilir ("+") kullanmayın, bir Dizeye sınıf döküm için String.valueOf kullanın ayırıcı yerelleştirilmeyecektir (yerine, veya viceversa).

Umut, işe yarıyor.

İlgili konular