2012-01-09 12 views
10

मैं हालांकि मैं यूएसबी पता लगाने में सक्षम हूँ का उपयोग करके कनेक्ट कार्रवाई android.intent.action.UMS_CONNECTED
और
काट दिया android.intent.action का उपयोग कर BroadcastReceiver का उपयोग कर USB संग्रहण पर बारी पता लगाने के लिए कोशिश कर रहा हूँ। UMS_DISCONNECTED कार्रवाई।


मैं यूएसबी स्टोरेज का पता कैसे लगा सकता हूं?एंड्रॉइड: "यूएसबी स्टोरेज चालू करें" प्रसारण कैसे करें?

उत्तर

3

नीचे यह है कि मैं कैसे जांचता हूं कि स्टोरेज कार्ड माउंट/अनमाउंट किया गया है या नहीं। आप हटाए गए/insterted की जांच के लिए इसे बदल सकते हैं। मैं इसे "माउंट इवेंट" प्राप्त करने के लिए ब्रॉडकास्ट रिसीवर पंजीकृत करके करता हूं, फिर जांच करें कि स्टोरेज कार्ड किस स्थिति में है। अगर इसे घुमाया नहीं गया है और यह जांचने के दौरान नहीं है (इसके दौरान राज्य फिर से कार्ड को माउंट करता है) यह अनमाउंट किया जाता है या कार्ड हटा दिया गया है।

public class MemCardReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
      onMemcardMounted(); 
     } 
     else if (!Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING)){ 
      onMemorycardUnMounted(); 
     } 
    } 

    private void onMemorycardUnMounted() {} 

    private void onMemcardMounted() {} 
} 

और ManifestFile में

<receiver android:enabled="true" android:exported="true" android:name="the.name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
      <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> 
      <data android:scheme="file" /> 
     </intent-filter> 
    </receiver> 

कई अलग-अलग राज्यों checkout this अगर वहाँ किसी भी अन्य में कहा गया है रहे हैं। हटाया गया

0

मुझे लगता है कि android.Intent.action.ACTION_MEDIA_EJECT प्रसारित होता है जब उपयोगकर्ता यूएसबी स्टोरेज को उपयोग में लेता है और ACTION_MEDIA_MOUNTED बंद होने पर प्रसारित होता है।

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