2012-09-06 12 views
19

कहा जाता है, मैंने getType() विधि में एक लॉग डाला है जिसे कभी मुद्रित नहीं किया जाता है। मैं नोटपैड नमूना कोड का उपयोग कर रहा हूँ। जावा दस्तावेज़ टिप्पणी की पहली पंक्ति कृपया बताएं। GetType() से रिटर्निंग नल भी ठीक काम कर रहा है। GetType() विधि का उद्देश्य क्या है?एंड्रॉइड कंटेंटप्रोवाइडर getType() को कब और क्यों

/** 
* This is called when a client calls {@link android.content.ContentResolver#getType(Uri)}. 
* Returns the MIME data type of the URI given as a parameter. 
* 
* @param uri The URI whose MIME type is desired. 
* @return The MIME type of the URI. 
* @throws IllegalArgumentException if the incoming URI pattern is invalid. 
*/ 
@Override 
public String getType(Uri uri) 
{ 
    Log.d("Suparna", "******getType()"); 
    /*switch(uriMatcher.match(uri)) 
    { 
    // ---get all books--- 
    case BOOK_DETAILS: 
     return Book.Book_Details.CONTENT_TYPE; 
     // ---get a particular book--- 
    case BOOK_DETAILS_ID: 
     return Book.Book_Details.CONTENT_ITEM_TYPE; 
    default: 
     throw new IllegalArgumentException("Unsupported URI: " + uri); 
    }*/ 
    return null; 
} 
+4

इस सवाल को कोई ध्यान क्यों नहीं मिला क्योंकि आप इसे "एंड्रॉइड" के साथ टैग करना भूल गए थे। :) –

+0

http://stackoverflow.com/questions/5351669/why-use-contentprovider-gettype-to-get-mime-type आपकी मदद कर सकता है। – boiledwater

उत्तर

33

getType(Uri uri) आमतौर पर केवल ContentResolver#getType(Uri uri) के लिए एक कॉल के बाद बुलाया जाएगा। यह दिए गए सामग्री यूआरएल के एमआईएमई प्रकार को पुनः प्राप्त करने के लिए अनुप्रयोगों (या तो अन्य तृतीय-पक्ष अनुप्रयोगों, यदि आपके ContentProvider को निर्यात किया गया है, या स्वयं) द्वारा उपयोग किया जाता है। यदि आपका ऐप डेटा के एमआईएमई प्रकार से संबंधित नहीं है, तो यह विधि return null विधि को पूरी तरह से ठीक है।

+0

ठीक है। जैसे ... उरी के डेटा प्रकार के आधार पर, यदि आप ब्राउज़र या मेल खोलने जैसे पुनर्प्राप्त डेटा के साथ विशिष्ट चीज़ करना चाहते हैं। मुझे लगता है कि यह संभावित उपयोग मामला है। धन्यवाद!!! –

+1

GetType (उरी) को लागू नहीं करना सबसे अच्छा आलसी है। यह ** ** ठीक हो सकता है अगर आप अपने प्रदाता का एकमात्र ग्राहक हैं। अन्यथा, आप अन्य लोगों के उपयोग के बारे में धारणाएं बना रहे हैं। – spaaarky21

+2

असल में वापस लौटने की बजाय यह कुछ लिखना बेहतर है: ** नया असमर्थितऑपरेशन अपवाद ("GetType लागू नहीं किया गया है"); ** – zkvarz

3

यह ContentProvider की getType() विधि का उपयोग अधिकतर होता है जब आप अपने ContentProvider को अन्य तृतीय पक्ष अनुप्रयोगों के साथ संवाद करने की अनुमति देते हैं। यह एमआईएमई प्रकार एंड्रॉइड सिस्टम द्वारा उपयोग किया जाता है यह पता लगाने के लिए कि कौन से एप्लिकेशन इसे संभाल सकते हैं।

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