2016-06-09 11 views
0

In our Android app brauchen wir eine ACTION_SEND Absicht von Drittanbieter-Anwendungen mit beliebigen MIME-TypWie mache ich eine Art Blacklist für einige Mime-Typen für Android-Anwendungen?

<intent-filter> 
    <action android:name="android.intent.action.SEND"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    <data android:mimeType="*/*"/> 
</intent-filter> 

Ausnahme von APK-Dateien zu fangen, das heißt wir brauchen schwarze Liste für APK-Erweiterung. Ist es möglich? Es scheint die Antwort ist "No way", aber ich habe zwei Apps auf meinem Gerät installiert, die definitiv dieses Problem lösen. Sie werden für die Datei mit der beliebigen Erweiterung lumix.p&z aufgerufen, die aus der DropBox-App

geöffnet und nicht mit .apk oi.filemanager.apk aufgerufen wird. Wie ist das möglich?

Antwort

0

Es scheint, die Antwort ist "No way"

Es gibt keine Möglichkeit, eine schwarze Liste im Manifest zu spezifizieren.

Ich habe zwei Anwendungen auf dem Gerät installiert ist, die auf jeden Fall dieses Problem lösen

Dropbox einen MIME-Typ auf der lumix.p&z Anforderung verwendet, dass diese Office-Anwendungen für sich registriert haben. Dropbox verwendet einen MIME-Typ für die Anforderung oi.filemanager.apk, für die diese Office-Apps nicht registriert sind. Keine Blacklist ist erforderlich. Was ist erforderlich ist für Dropbox, seine eigenen Algorithmen, möglicherweise auf seinen Servern implementiert, um einen geeigneten MIME-Typ zu erraten.

+0

Es gibt keine solche Erweiterung - .p & z. Ich habe es nur als Beispiel für eine Erweiterung geschrieben. Daher haben diese Office-Apps für jede Erweiterung registriert. Auf der anderen Seite haben sich diese Office-Apps jedoch nicht für die Erweiterung .apk registriert. Offensichtlich haben wir hier einen Widerspruch. Wie kann es sein? – isabsent

+0

@isabsent: "Daher haben diese Office-Apps für jede Erweiterung registriert" - nein. Dropbox verwendet andere Techniken, um einen MIME-Typ abzuleiten, beispielsweise den Inhalt der Datei zu betrachten. Oder Dropbox verwendet 'application/octet-stream' oder einen anderen generischen MIME-Typ, für den sich diese Apps registriert haben. – CommonsWare

+0

Danke, Mark! Wahrscheinlich hast du recht. Ich werde Ihre Antwort als eine Lösung nach einiger Zeit markieren, wenn keine anderen Annahmen getroffen werden. – isabsent