2013-01-10 37 views
9

Tôi đã đấu tranh với điều này trong nhiều ngày nay.Mở tệp tùy chỉnh Loại tệp đính kèm Gmail trong ứng dụng

Tôi đang cố gắng đăng ký hoạt động của mình thông qua bộ lọc ý định để mở loại tệp tùy chỉnh cụ thể với gmail.

Vấn đề là không có vấn đề gì tôi cố gắng, hoặc tôi không nhận được tùy chọn để mở tệp hoặc bất kỳ tệp đính kèm nào (bao gồm cả tệp) được cung cấp tùy chọn mở bằng ứng dụng của tôi.

Tôi tin rằng vấn đề là URI do gmail cung cấp không có bất kỳ chi tiết tệp nào chứa bên trong nó.

Có rất nhiều người đã hỏi cùng một câu hỏi này tuy nhiên giải pháp cho tất cả chúng không bao giờ giới hạn bộ lọc ý định chỉ với loại tệp tùy chỉnh.

Bộ lọc ý định hiện hành trong Android Manifest của tôi là những sản phẩm sau ...

  <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data 
        host="*" 
        android:mimeType="*/*" 
        android:pathPattern=".*\\.abc" 
        android:scheme="content" /> 
      </intent-filter> 

Chỉ cần nhắc lại, bộ lọc ý định này bổ sung thêm tùy chọn để mở bất kỳ tập tin đính kèm từ gmail với ứng dụng của tôi.

Bất kỳ trợ giúp sẽ được nhiều đánh giá cao

+0

chúng tôi muốn tệp đính kèm được gửi tới thư ... – NagarjunaReddy

Trả lời

5

Không nhất thiết phải là một phần mở rộng tập tin trên content://Uri giá trị trỏ đến file. AFAIK, Gmail không bao gồm phần mở rộng tệp trên trang của họ và do đó, nó sẽ không khớp với số pathPattern của bạn. Ngoài ra, host thiếu tiền tố không gian tên android:.

Nếu email sẽ được gửi với loại MIME riêng biệt cho tệp của bạn, hãy sử dụng loại đó trong android:mimeType và thả các thuộc tính còn lại <data>. Nếu email sẽ không được gửi với một loại MIME riêng biệt cho tệp của bạn, thì AFAIK bạn sẽ không may mắn.

+0

Xin chào CommonsWare. Cảm ơn vì đã trả lời. Tôi thấy nó hơi kỳ lạ khi bạn không thể khai báo những tập tin nào bạn muốn mở trong gmail? Có phải chỉ là gmail rằng tôi sẽ gặp vấn đề này? – StuStirling

+0

@ DiscoS2: Vấn đề là bạn đang cố gắng tạo liên kết dựa trên phần mở rộng tệp. Android nhấn mạnh loại MIME và làm rất ít với phần mở rộng tập tin. Về nguyên tắc, bạn có thể gặp phải vấn đề này với bất kỳ loại ứng dụng nào phục vụ các tệp thông qua một 'ContentProvider'. – CommonsWare

+0

Ok thats đủ công bằng, chỉ là một chút của một vấn đề nếu tôi sau đó muốn gửi một tập tin từ một khách hàng máy tính để bàn và không ứng dụng của tôi như tôi không có bất kỳ kiểm soát các loại MIME. Cảm ơn sự giúp đỡ của bạn CommonsWare và sách của bạn cũng rất hữu ích: 0 – StuStirling

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