6

का उपयोग कर एसडी कार्ड से एक फ़ाइल चुनें, क्या एंड्रॉइड के पास इरादे का उपयोग करके एसडी कार्ड से किसी भी फाइल को ब्राउज़ करने और लेने का कोई तरीका है?इरादे

String uri = (Environment.getExternalStorageDirectory()).getAbsolutePath(); 
Intent i = new Intent(Intent.ACTION_PICK,Uri.parse(uri)); 

ब्लूटूथ का उपयोग करके अन्य डिवाइसों पर एक फ़ाइल भेजने की कोशिश कर रहा हूं। अगर मैं अपने कोड में फ़ाइल नाम का पूरा पथ देता हूं तो मैं भेज सकता हूं। मैं चाहता हूं कि मेरे उपयोगकर्ता फाइल को चुनें जो भेजना चाहिए।

उत्तर

7

आप कोड निम्न का उपयोग कर सकते

Intent mediaIntent = new Intent(Intent.ACTION_GET_CONTENT); 
mediaIntent.setType("video/*"); //set mime type as per requirement 
startActivityForResult(mediaIntent,REQUESTCODE_PICK_VIDEO); 

तो फिर तुम onActivityResult

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == REQUESTCODE_PICK_VIDEO 
      && resultCode == Activity.RESULT_OK) { 
     Uri videoUri = data.getData(); 
     Log.d("", "Video URI= " + videoUri); 


    } 
} 
+0

यदि मैं mediaIntent.setType ("वीडियो/*") सेट करता हूं, तो यह छवियों और वीडियो ब्राउज़ करने के लिए गैलरी खोल रहा है। मैं एक आम खोज करना चाहता हूं जहां मुझे कोई फ़ाइल चुननी चाहिए। यह संगीत फ़ाइल, एपीके फ़ाइल और कुछ भी हो सकता है। क्या यह संभव है ? – user2978042

+1

फिर setType ("*/*") –

+0

का उपयोग करें, लेकिन यह कहता है android.content.ActivityNotFoundException: इरादा को संभालने के लिए कोई गतिविधि नहीं मिली {act = android.intent.action.GET_CONTENT typ = /} – user2978042

5

सामान्य ब्राउज़िंग उपयोग के लिए यह (जैसे संगीत फ़ाइल) में पथ प्राप्त कर सकते हैं:

Intent intent = new Intent(); 
intent.setType("*/*"); 
if (Build.VERSION.SDK_INT < 19) { 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    intent = Intent.createChooser(intent, "Select file"); 
} else { 
    intent.setAction(Intent.ACTION_OPEN_DOCUMENT); 
    intent.addCategory(Intent.CATEGORY_OPENABLE); 
    String[] mimetypes = { "audio/*", "video/*" }; 
    intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes); 
} 
startActivityForResult(intent, Constants.REQUEST_BROWSE); 

और प्राप्त यहां ब्राउज़ किया गया डेटा:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == Constants.REQUEST_BROWSE 
      && resultCode == Activity.RESULT_OK && data != null) { 
     Uri uri = data.getData(); 
     if (uri != null) { 
      // TODO: handle your case 
     } 
    } 
} 
संबंधित मुद्दे