2012-09-17 10 views
5

Özel dosya türleri (.sor) üreten bir uygulama var. App içinde ekli bu dosyalardan birine sahip bir e-posta göndermek için bir özellik var. Ayrıca, uygulamanın bu tür bir dosyayı açabilen uygulamalar listesinde görünmesini sağlamak için bir amaç filtrenim de var. Bu bana (bazen) uygulamayı telefonda kullanıcı e-posta istemcisinden uygulama ile açmamı sağlar. Bununla birlikte, bu yalnızca e-posta bir PC e-posta istemcisinden geldiğinde çalışır ve e-posta bir telefondan alındığında çalışmayacaktır. Örneğin, bu .sor dosyalarından birini oluşturur ve ardından kendi e-posta hesabım için bir e-posta göndermek için benim uygulamamı kullanırsam, telefonumdaki e-postayı alır ancak eki uygulamamla açamayacağım ... AMA e-postayı aynı hesaba gönderir ve telefonumda (Thunderbird ile) telefonun yerine açarsam ya da iletir veya telefonuma yeni bir e-posta olarak gönderirse aynı e-posta uygulamasını kullanabilirim benim app ile eki açmak için telefonda ... Ben sadece burada bir e-posta hesabı hakkında konuşuyoruz, tek fark e-postanın gönderildiği yer, telefonum veya pencereleri 7 PC.Android: Uygulamam ile e-posta ekini açmak için Intent Filtresinin Kaydedilmesi

Düşünebildiğim tek şey, telefondan e-postayı gönderdiğimde, ek olarak, bilgisayara Thunderbird'den gönderdiğimden daha farklı bir mime türü gömülüdür ... MIME türünü belirtiyorum Uygulamamdaki e-postayı gönderdiğimde "application/octet-stream" olarak ve bu mime tipini arayan bir amaç filtresim var ... ama düzgün çalışmıyor.

Benim niyet filtresi:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="application/octet-stream" /> 
    <data android:scheme="file" /> 
</intent-filter> 

telefondan e-posta eki dosyayı gönderirken ben telefonlar e-posta istemcisi geçmek niyet: Yine

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.setType("application/octet-stream"); 
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + fullPathString)); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "FiberDroid OTDR Trace File: \"" + ContextMenuFileName + "\""); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "This e-mail was sent from the TTI FiberDroid Android application."); 
startActivity(Intent.createChooser(sendIntent, "Select E-Mail Application")); 

, gönderme ekli dosya ile e-posta düzgün çalışır ... ve aynı dosyayı bir PC e-posta istemcisinden (outlook veya thunderbird gibi) telefona geri e-postayla gönderirseniz, dosyaları doğrudan telefon e-posta uygulamasından uygulamamla açabilirim . Sorun şu ki, e-postayı bilgisayarımdan geçmeden bir ek olarak açamayacağımı düşünürsek, verdiğim tek seçenek "SD karta kaydet" ...

Tekrarlamak için Telefonumda aynı dosyaya sahip olan ve her ikisi de orijinal olarak aynı hesaptan aynı hesaba (her ikisi de aynı hesaptan aldım) gönderilen aynı e-postaya sahip olan 2 e-posta adresim var. gereksiz aracı düzgün çalışır ve doğrudan telefonumdan gönderilen ve alınan değil.

Herhangi bir fikrin var mı? Şimdiden teşekkür ederim.

+0

Maalesef okuyan insanlara kafa karıştırıcı olacak ... – CHollman82

cevap

8

Bunu çoğunlukla karanlıkta ve gerçekten anlamadan çözerek çözdüm. Neyi çözdüğümü, ancak burada, ".sor" ifadesinin bulunduğu manifest filtreleri için elimde bulunan filtreler var. özel dosya türümün Bu K-9 posta ve Astro dahil denedim tüm e-posta ve dosya yönetim uygulamalarını kullanarak çalışır: ben defalarca bu açıkladı yazdım olarak, o kadar biliyorum bana kafa karıştırıcı kulağa görünüyorsa

<!-- For email attachments --> 
<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="application/*" host="*" android:pathPattern=".*.sor" android:scheme="content" /> 
</intent-filter> 

<!-- For file browsers --> 
<intent-filter> 
    <action android:name="android.intent.action.VIEW"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <data android:mimeType="application/*" host="*" android:pathPattern=".*.sor" android:scheme="file" /> 
</intent-filter> 
+0

kodunuz GMAIL ile çalışıyor mu? – Giuseppe

+1

"E-posta ekleri için" çözümünüzle ilgili bir sorunum var. Çalışıyor, ama aynı zamanda bir soruna da neden oluyor, nerede tıklanmış yeni bir gmail bildirimi varsa, başvurumda açmak isteyip istemediğimi sorar. Ve eğer evet dersem, çöker. Bunun için bir çözümü olan var mı? – BriCo84

+2

Cevabını, başka bir kullanıcıdan yukarıdaki kendi yorumum sayesinde aldı[email protected] Mime türünü uygulamaya ayarlama/*, kullanıcının Gmail/E-posta ve uygulamanızdaki tüm yeni e-posta bildirimlerini açmasını isteyen bir seçici alacağı anlamına gelir. Bunun yerine kullanın: BriCo84