6

Android, niyetleri kullanarak SD karttan herhangi bir dosyayı taramak ve seçmek için herhangi bir yol var mı? Bluetooth kullanarak diğer cihazlara dosya göndermeye çalışıyorum. Kodumda dosya adının tam yolunu verirsem gönderebilirim. Kullanıcılarımın gönderilmesi gereken dosyayı seçmesini istiyorum.Inting kullanarak SD karttan bir dosya seçin

cevap

7

Sen kod aşağıdaki kullanabilirsiniz

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

Sonra onActivityResult genel tarama kullanım için

@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 ("video/*") öğesini ayarlarsam, görüntülere ve videolara göz atmak için galar açılır. Herhangi bir dosyayı seçmem gereken ortak bir arama yapmak istiyorum. Müzik dosyası, apk dosyası ve herhangi bir şey olabilir. Mümkün mü ? – user2978042

+1

daha sonra setType ("*/*") kullanın –

+0

Ama diyor android.content.ActivityNotFoundException: Hiçbir işlem bulunamadı Intent {act = android.intent.action.GET_CONTENT typ = /} – user2978042

5

bu (örn Müzik dosyası) yolu alabilirsiniz:

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); 

Ve almak Burada göz atılan veriler:

@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 
     } 
    } 
}