6

Android có bất kỳ cách nào để duyệt và chọn bất kỳ tệp nào từ thẻ SD sử dụng tính năng không? Một số điều nhưChọn tệp từ thẻ SD sử dụng Intent

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

Đang cố gắng gửi tệp đến các thiết bị khác bằng Bluetooth. Tôi có thể gửi nếu tôi cung cấp đường dẫn đầy đủ của tên tệp trong mã của tôi. Tôi muốn người dùng của tôi chọn tệp cần gửi.

Trả lời

7

Bạn có thể sử dụng đoạn mã sau

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

Sau đó, bạn có thể nhận được đường dẫn trong 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

Nếu tôi đặt mediaIntent.setType ("video/*"), nó sẽ mở ra galary để duyệt hình ảnh và video. Tôi muốn thực hiện tìm kiếm phổ biến nơi tôi nên chọn bất kỳ tệp nào. Nó có thể tập tin nhạc, tập tin apk và có thể là bất cứ điều gì. Có thể không? – user2978042

+1

sau đó sử dụng setType ("*/*") –

+0

Nhưng nó nói android.content.ActivityNotFoundException: Không tìm thấy Hoạt động nào để xử lý Intent {act = android.intent.action.GET_CONTENT typ = /} – user2978042

5

Để sử dụng trình duyệt chung này (ví dụ tập tin âm nhạc):

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

Và nhận dữ liệu được duyệt ở đây:

@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 
     } 
    } 
} 
Các vấn đề liên quan