2012-05-01 20 views
7

मैं एंड्रॉइड डिफ़ॉल्ट ब्राउज़र इतिहास प्राप्त करने और ब्राउज़र इतिहास को एक XML फ़ाइल में सहेजने के लिए एक एप्लिकेशन को कार्यान्वित करना चाहता हूं। लेकिन ब्राउज़र इतिहास कुछ उपकरणों में xml फ़ाइल में सहेज नहीं रहा है।एंड्रॉइड में ब्राउज़र इतिहास कैसे प्राप्त करें?

private void browserHistoryDOM() { 
    try{ 
     File newxmlfile = new File("/sdcard/Xmlfiles/briwserHistory.xml"); 
     newxmlfile.createNewFile(); 
     DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); 
     Document document = documentBuilder.newDocument(); 
     Element rootElement = document.createElement("root"); 
     document.appendChild(rootElement); 

     Cursor mCur = managedQuery(Browser.BOOKMARKS_URI,Browser.HISTORY_PROJECTION, null, null, null); 
     mCur.moveToFirst(); 

     if (mCur.moveToFirst() && mCur.getCount() > 0) { 
      while (mCur.isAfterLast() == false) { 
       Element em = document.createElement("bookmarkIdx"); 
       em.appendChild(document.createTextNode(mCur.getString(Browser.HISTORY_PROJECTION_BOOKMARK_INDEX))); 
       rootElement.appendChild(em); 

       long callDate = Long.parseLong(mCur.getString(Browser.HISTORY_PROJECTION_DATE_INDEX)); 
       SimpleDateFormat datePattern = new SimpleDateFormat ("dd-MM-yyyy/h:m:s:a"); 
       datePattern.setTimeZone(TimeZone.getTimeZone("GMT")); 
       String date_str = datePattern.format(new Date(callDate)); 

       Element em1 = document.createElement("dateIdx"); 
       em1.appendChild(document.createTextNode(date_str)); 
       rootElement.appendChild(em1); 

       Element em2 = document.createElement("idIdx"); 
       em2.appendChild(document.createTextNode(mCur.getString(Browser.HISTORY_PROJECTION_ID_INDEX))); 
       rootElement.appendChild(em2); 

       Element em3 = document.createElement("titleIdx"); 
       em3.appendChild(document.createTextNode(mCur.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX))); 
       rootElement.appendChild(em3); 

       Element em4 = document.createElement("urlIdx"); 
       em4.appendChild(document.createTextNode(mCur.getString(Browser.HISTORY_PROJECTION_URL_INDEX))); 
       rootElement.appendChild(em4); 

       Element em5 = document.createElement("visitsIdx"); 
       em5.appendChild(document.createTextNode(mCur.getString(Browser.HISTORY_PROJECTION_VISITS_INDEX))); 
       rootElement.appendChild(em5); 

       long searchDate = Long.parseLong(mCur.getString(Browser.SEARCHES_PROJECTION_DATE_INDEX)); 
       SimpleDateFormat datePattern1 = new SimpleDateFormat ("dd-MM-yyyy/h:m:s:a"); 
       datePattern1.setTimeZone(TimeZone.getTimeZone("GMT")); 
       String date_str1 = datePattern.format(new Date(searchDate)); 

       Element em6 = document.createElement("searchDateIdx"); 
       em6.appendChild(document.createTextNode(date_str1)); 
       rootElement.appendChild(em6); 

       Element em7 = document.createElement("searchIdx"); 
       em7.appendChild(document.createTextNode(mCur.getString(Browser.SEARCHES_PROJECTION_SEARCH_INDEX))); 
       rootElement.appendChild(em7); 

       Element em8 = document.createElement("truncateIdIdx"); 
       em8.appendChild(document.createTextNode(mCur.getString(Browser.TRUNCATE_HISTORY_PROJECTION_ID_INDEX))); 
       rootElement.appendChild(em8); 

       Element em9 = document.createElement("truncateOldest"); 
       em9.appendChild(document.createTextNode(mCur.getString(Browser.TRUNCATE_N_OLDEST))); 
       rootElement.appendChild(em9); 

       mCur.moveToNext(); 
      } 
     } 

     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     DOMSource source = new DOMSource(document); 
     StreamResult result = new StreamResult(newxmlfile); 
     transformer.transform(source, result); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

उपरोक्त विधि का उपयोग कर मैं ब्राउज़र इतिहास और xml फ़ाइल में डेटा को बचाने में सफल हो सकता है द्वारा:

मैं इस प्रकार के लिए xml फ़ाइल को बचाने के लिए ब्राउज़र इतिहास जानकारी प्राप्त अपने आवेदन को लागू किया है एसडीकार्ड पर। लेकिन किसी भी प्रकार के एंड्रॉइड डिवाइसों में ब्राउज़र इतिहास पूरी तरह से नहीं मिल रहा है और एक्सएमएल फाइल में सहेज नहीं रहा है। अगर मैं मोटोरोला Droid डिवाइस पर ऐप का परीक्षण करता हूं तो यह ठीक काम कर रहा है। लेकिन अगर मैं उसी ऐप का परीक्षण करता हूं तो मैंने ऐप का परीक्षण किया है npm702 NOVO7PALADIN पर मैं अपने xml फ़ाइल में ब्राउज़र इतिहास प्राप्त करने में सक्षम नहीं हूं।

उत्तर

9

सबसे पहले, कभी भी /sdcard हार्डवायर न करें। बाहरी भंडारण की जड़ तक पहुंचने के लिए Environment.getExternalStorageDirectory() का उपयोग करें।

दूसरा, Browser.BOOKMARKS_URI, ओपन सोर्स ब्राउज़र ऐप के लिए काम करेगा, जो एंड्रॉइड ओपन सोर्स प्रोजेक्ट का हिस्सा है। डिवाइस निर्माताओं को उस ऐप को किसी अन्य चीज़ के साथ बदलने के लिए आपका स्वागत है जो ContentProvider में इसके इतिहास, बुकमार्क या अन्य किसी भी चीज़ को रिकॉर्ड नहीं करेगा। इसी प्रकार, उपयोगकर्ताओं को तृतीय-पक्ष ब्राउज़र डाउनलोड करने की अनुमति है, जो ContentProvider में चीजें संग्रहीत नहीं कर सकते हैं।

तीसरा, NOVO7PALADIN संगतता परीक्षण सूट पारित नहीं किया हो सकता है, खासकर यदि उसके पास Google Play Store (पूर्व में एंड्रॉइड मार्केट) पूर्व-स्थापित नहीं है। इसका मतलब यह होगा कि डिवाइस निर्माता का स्वागत किसी भी चीज़ को तोड़ने के लिए किया जाता है, जिसमें ओपन सोर्स ब्राउज़र ऐप उस ContentProvider में चीजों को स्टोर करता है या नहीं।

आपको और कुछ सीखने के लिए NOVO7PALADIN निर्माता से संपर्क करने की आवश्यकता होगी।

संबंधित मुद्दे