2012-10-14 36 views
9

Tôi đang đấu tranh với làm thế nào để làm cho một phần mở rộng tập tin tùy chỉnh mở trong ứng dụng Android của tôi thông qua ổ đĩa ui google. Tệp của tôi hiện đang mở tốt qua dropbox hoặc trình khám phá tệp android. Ổ đĩa Google dường như chỉ xem xét loại mime của tệp. Phần mở rộng tập tin là của riêng tôi (cho phép nói .xyz) và tập tin là xml ở bên trong. Tôi muốn tệp mở trong ứng dụng của mình không chỉ bất kỳ ứng dụng nào được đăng ký để mở các loại mime văn bản/xml. Làm thế nào tôi có thể nói với google ổ đĩa các tập tin .xyz không được đối xử như văn bản/xml. Tương tự như vậy tôi không muốn đăng ký ứng dụng của mình để mở tất cả các tệp văn bản/xml.mở phần mở rộng tập tin tùy chỉnh từ Google Drive trên Android

Vì vậy, các quy trình làm việc người dùng cuối sẽ là: 1) Mở Google Drive ứng dụng Android. 2) Nhấn "somefile.xyz" -> Tệp sẽ được mở trong ứng dụng của tôi. Hiện tại, nó sẽ mở ra trong trình xem xml google drive. 3) Nhấn "otherfile.xml" -> Tệp sẽ không được mở trong ứng dụng của tôi.

Trả lời

1

Hóa ra câu trả lời cho câu hỏi này là bạn không thể làm điều đó.

Với một tập tin gọi .xyz và một dạng của xml trên bên trong tốt nhất mà bạn có thể làm là để tạo ra các bộ lọc ý định khác nhau để xử lý tất cả những cách ứng dụng khác xác định các tập tin. Ví dụ tôi đặt các mimeTypes sau trong bộ lọc ý định của tôi.

  • Google Drive - text/xml
  • ICS Gmail - text/plain
  • Jellybean Gmail - application/octet-stream
+0

Tôi đang gặp sự cố tương tự khi một ứng dụng của tôi nhận dạng tệp tùy chỉnh từ Drive và tôi không thể nhận được câu trả lời của bạn để làm việc cho tôi. Bạn có thể chia sẻ một ví dụ đầy đủ về bộ lọc ý định bạn đã sử dụng không? Cảm ơn nếu bạn có thể! – u2tall

+0

Hi @Nathan: Bạn có thể giải thích nó bằng một số ví dụ không? Tôi đang đấu tranh với vấn đề trên trong ứng dụng của mình.Tôi muốn nhận được phần mở rộng của tên tập tin được chia sẻ thông qua ổ đĩa Google để ứng dụng của tôi. – Rotomac17

0

Bạn có thể lưu các tập tin của bạn vào thư mục riêng của ứng dụng của bạn thì nó sẽ không được truy cập bởi bất kỳ ứng dụng khác

Xem qua liên kết này như thế nào để làm điều đó

http://developer.android.com/training/basics/data-storage/files.html

Context.MODE_PRIVATE và getFilesDir() có thể hữu ích cho bạn.

Hoặc nếu bạn muốn các ứng dụng khác làm điều gì đó cho bạn và trả lại kết quả cho đơn đăng ký Hãy thực hiện điều này.

http://developer.android.com/training/basics/intents/sending.html

hoặc

http://developer.android.com/training/basics/intents/filters.html

+0

Tôi muốn cho phép người dùng quản lý các tập tin của họ thông qua các đám mây khác nhau ứng dụng. Ứng dụng của tôi không tạo tệp mà chỉ đơn giản là mở tệp hiện có. Câu hỏi của tôi là làm thế nào để tôi làm cho ổ đĩa google mở tập tin .xyz trong ứng dụng của tôi. – Nathan

+0

xem câu trả lời đã chỉnh sửa – Javanator

+1

Đã cập nhật bài đăng của tôi. Tôi không muốn ứng dụng của mình làm điều gì đó, ứng dụng khác cần thấy rằng ứng dụng của tôi có nghĩa vụ mở tệp .xyz. – Nathan

Các vấn đề liên quan