SORU
21 EYLÜL 2010, Salı


Android niyet filtre: dosya uzantısı ile ilişkilendirmek uygulaması

Benim app ilişkilendirmek istiyorum eklenti/özel bir dosya türü var.

Bildiğim kadarıyla, veri öğesi, bu amaç için yapılmış, ama o çalışma alamadım. http://developer.android.com/guide/topics/manifest/data-element.html Doktorlar ve forum bir sürü göre, bu gibi çalışması gerekir:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:mimeType="application/pdf" />
</intent-filter>

Evet, çalışmıyor. Ben yanlış ne yaptım? Ben sadece kendi dosya tipim ilan etmek istiyor.

CEVAP
23 ŞUBAT 2011, ÇARŞAMBA


Birden fazla niyet filtreleri işlemek istediğiniz farklı bir durumu çözmek gerekir.

1, mime olmadan http istekleri işlemek örnek:

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.pdf" />
  </intent-filter>

Sonek alakasız olduğu mime kolu,:

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
    <data android:host="*" />
    <data android:mimeType="application/pdf" />
  </intent-filter>

Bir dosyadan kasıt kolu tarayıcı uygulaması:

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • RayperEnglishKnight

    RayperEnglis

    24 Kasım 2008