2011-12-13 41 views
6

Tôi sử dụng eclipse-indigo và android 2.3.3_r1 và tôi tải xuống chuỗi từ máy chủ trong mạng. Đó là nội dung của tệp docx.cách lấy ParcelFileDescriptor cho nội dung tệp?

Tôi có thể nhận được ParcelFileDescritor từ nó không? Tôi đoán rằng MemoryFile có thể giúp tôi, bởi vì tôi đã thấy phương pháp getParcelFileDescriptor() cho nó herehere, nhưng khi tôi viết mã của mình trong nhật thực, tôi không thể tìm thấy phương thức getParcelFileDescriptor() trong lớp android.os.MemoryFile.

Cuối cùng đây là câu hỏi của tôi: là nó có thể mà không cần sử dụngsocket()?

Trả lời

0

là một gói riêng tư, vì vậy tôi không thể tìm thấy nó trong lớp của tôi (đó là trong gói khác) .Tôi đã cố gắng truy cập nó bằng cách phản ánh nhưng cuối cùng tôi hiểu rằng nó trả về ParcelFileDescritor phù hợp, nếu và chỉ nếu , chúng tôi tạo MemoryFile của chúng tôi như là một tham chiếu đến một tập tin bộ nhớ hiện có và trong trường hợp này chúng tôi muốn File descriptor từ tập tin bộ nhớ hiện có. Do đó, phương pháp này không thể giúp chúng tôi.Có vẻ như trong các phiên bản sau của Android, phương pháp này hoàn toàn bị bỏ qua và đã bị xóa khỏi lớp học.

6
@Override 
public ParcelFileDescriptor openFile(Uri uri){ 
     File f=new File(getContext().getFilesDir(),uri.getLastPathSegment()); 
     ParcelFileDescriptor pfd; 
     try { 
     pfd=ParcelFileDescriptor.open(f,ParcelFileDescriptor.MODE_READ_ONLY); 
     } 
    catch ( FileNotFoundException e) { 
     e.printStackTrace(); 
     return null; 
     } 
     return pfd; 
    } 
Các vấn đề liên quan