Android Share benutzerdefinierte Datei

Ich habe meine eigene Dateierweiterung erstellt .oli). Wenn der Benutzer auf eine Datei mit dieser Erweiterung klickt, startet meine App und lädt die enthaltenen Daten. Das funktioniert wie erwartet. Das Problem ist, dass ich dem Benutzer meiner App die Möglichkeit geben möchte, eine Datei freizugeben (Beispiel: filename.oli).

Ich habe dies bisher implementiert:

public void shareFile(){
        File file = getShareableFile(); //Creates a .oli-file
        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        Uri uri = Uri.fromFile(file);
        shareIntent.setType("*/*"); //Maybe the problem
        shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
        shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, name);
        startActivity(Intent.createChooser(shareIntent, getString(R.string.shareDatei)));
}

Das Problem ist, dass die Liste der Apps, die glauben, sie könnten meine Datei freigeben, aufgrund von shareIntent.setType ("/") sehr groß ist. Hier sind zwei Fälle, die auftreten, wenn Sie mit verschiedenen Apps teilen:

Wenn ich eine E-Mail-App wie Google Mail auswähle, um meine Datei freizugeben, funktioniert sie wie gewünscht. Die E-Mail enthält die Datei als filename.oli. Wenn ich darauf klicke, wird meine App gestartet.

Aber wenn ich zum Beispiel die Quickmemo-App wähle bekomme ich eine Meldung, dass diese Datei von dieser nicht geteilt werden kann.

lles in allem möchte ich nur Apps in der Auswahlliste anzeigen, mit denen ich meine Datei mit der Erweiterung .oli teilen kann. Wie mache ich das? Danke im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage