2016-06-20 3 views
0

Der Benutzer meiner App kann eine benutzerdefinierte Liste mit übergeordneten und untergeordneten Elementen erstellen. Ich speichere diese Informationen in einer XML-Datei. Ich möchte dem Benutzer die Möglichkeit geben, diese Datei zu teilen (E-Mail usw.). Wenn der andere Benutzer auf diese Datei klickt, möchte ich die App öffnen und die Daten in meiner Liste anzeigen!Android Freigeben und XML-Datei öffnen

Was habe ich bisher getan: Der Benutzer kann eine XML-Datei erstellen und speichern Sie sie in seinem Speicher. Das Problem jetzt: Wie öffne ich die App, wenn ich auf die Datei klicke? Muss ich meine eigene Dateierweiterung erstellen, in der sich die XML-Daten befinden?

EDIT:

<activity 
      android:name=".activities.TrainingSimpleShowActivity" 
      android:label="@string/title_activity_training_simple_show" 
      android:screenOrientation="portrait"> 

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

     </activity> 

Antwort

1

Nein, Sie nur eine Intent-Filter für Ihre Anwendung einstellen müssen.

Zum Beispiel:

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

Also, wenn ein Benutzer auf XML-Datei Ihrer Anwendung vorgeschlagen, diese Datei zu öffnen, aus dem Android-System kann öffnen klickt.

Dann müssen Sie die Absicht in Ihrer App bekommen und die Daten behandeln.

Intent intent = getIntent(); 
Uri data = intent.getData(); 

Vielleicht können Sie einen Leitfaden schreiben für Sie Benutzer diese XML-Datei zu schreiben, und wenn Ihre Anwendung das Datum aus dem Vorsatz bekommen können Sie einen bestimmten Tag oder ein Attribut suchen.

Ich hoffe, dies hilft Ihnen.

UPDATE manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.dojester13.experimentintent"> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:scheme="file" android:host="*" android:pathPattern=".*\\.xml" android:mimeType="*/*" /> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 
+0

Wo muss ich im Manifest der Intent-Filter setzen? – XxGoliathusxX

+0

In der manifest.xml, in der Aktivität, die Sie mit den Daten umgehen wollen, denke ich in diesem Fall. Ich empfehle Ihnen, die Dokumentation zu überprüfen https://developer.android.com/guide/components/intents-filters.html –

+0

Ok, ich habe es zu der Aktivität hinzugefügt, die ich damit umgehen möchte. Aber wenn ich auf die XML-Datei klicke und "Öffnen mit ..." sage, wird meine App nicht in der Liste angezeigt. – XxGoliathusxX