2011-03-10 20 views
6

का उपयोग कर विशेषताएं मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं और मुझे एंड्रॉइड डिवाइस की ज़रूरत है। मुझे पता है कि, पैकेज प्रबंधक का उपयोग करके, getSystemAvailableFeatures विधि उपलब्ध होना चाहिए। फिर भी विधि उपलब्ध नहीं है क्या कोई भी उससे संबंधित कुछ उदाहरण या स्रोत कोड पोस्ट करके मेरी सहायता कर सकता है।एंड्रॉइड डिवाइस कैसे प्राप्त करें पैकेज प्रबंधक

+0

जब आप 'getSystemAvailableFeatures()' की कोशिश की क्या हुआ ?? –

उत्तर

24

मैं निम्नलिखित समारोह का उपयोग करता है, तो एक सुविधा उपलब्ध है निर्धारित करने के लिए:

public final static boolean isFeatureAvailable(Context context, String feature) { 
     final PackageManager packageManager = context.getPackageManager(); 
     final FeatureInfo[] featuresList = packageManager.getSystemAvailableFeatures(); 
     for (FeatureInfo f : featuresList) { 
      if (f.name != null && f.name.equals(feature)) { 
       return true; 
      } 
     } 

     return false; 
    } 

उपयोग (यानी गतिविधि वर्ग से):

if (isFeatureAvailable(this, PackageManager.FEATURE_CAMERA)) { 
     ... 
    } 
+0

मैं एंड्रॉइड डिवाइस के लिए उपलब्ध सभी सुविधाओं की सूची कैसे प्राप्त कर सकता हूं? मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि Google PlayStore से इसे डाउनलोड करते समय मेरा ऐप संगत नहीं है। इसलिए मैं यह समझने में असमर्थ हूं कि कौन सी अनुमति/सुविधा मुझे ऐसा करने की इजाजत नहीं दे रही है। –

+1

@ जतिनजा ** ** Google Play ** पर ऐप की दृश्यता को सीमित करने के लिए ** जिन सुविधाओं में कुछ विशेषताओं (जैसे _flash_, _camera_ आदि) हैं, आपको विज्ञापन देना है कि ** एक विशिष्ट सुविधा/सुविधाओं का समर्थन करने पर निर्भर करता है ** , अपनी मेनिफेस्ट फ़ाइल में '<उपयोग-सुविधा>' टैग डालकर। –

9

आप इस सुविधा का पता है आप तो जाँच करना चाहते हैं आपको सभी सिस्टम सुविधाओं की गणना करने की आवश्यकता नहीं है और आप जिसकी तलाश कर रहे हैं उसके खिलाफ जांच करें। एपीआई स्तर 5 के बाद से आप पिछले जवाब में दिखाए गए फ़ीचरएक्वायर() फ़ंक्शन के समान कार्य करने के लिए PackageManager.hasSystemFeature() फ़ंक्शन का उपयोग कर सकते हैं।

उदाहरण के लिए ...

PackageManager packageManager = this.getPackageManager(); 

if (packageManager.hasSystemFeature(PackageManager.FEATURE_NFC)) 
    Log.d("TEST", "NFC IS AVAILABLE\n"); 
else 
    Log.d("TEST", "NFC IS *NOT* AVAILABLE\n"); 
संबंधित मुद्दे