2013-09-27 4 views
7

Derzeit habe ich in meiner App ein eigenes URI-Schema, um zu erkennen, wann der Benutzer auf einen bestimmten URI klickt.Empfangen von Daten für ein benutzerdefiniertes URL-Schema in Android

-Code in Manifest Datei verwendet wird, ist wie folgt:

<intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="http" android:host="com.test/> 
      <action android:name="android.intent.action.VIEW" /> 
    </intent-filter> 

Wenn ein Benutzer auf einen Link klickt, die URI in Browser meine Gewohnheit hat, wird sie jetzt ein Optionen für Benutzer Popup meine App zu wählen.

Aber wie gebe ich diese Daten, die der Link zu meiner App ist, wenn sie zur weiteren Verarbeitung gestartet werden? Wie übermittele ich Daten vom Browser an meine App?

Vielen Dank im Voraus

+0

Warum setzen Sie android.intent.action.VIEW zweimal? – portfoliobuilder

+0

@portfolioBuilder Sollte einmal sein, denke, es hat keinen Fehler, wenn zweimal geschrieben, so würde es verpasst haben. – aandroidtest

Antwort

9

Angenommen, die URL klicken, um ist http://twitter.com/status/1234 Sie die Daten der folgenden Methode erhalten.

// http://twitter.com/status/1234 
    Uri data = getIntent().getData(); 
    Log.d(TAG, data.toString()); 
    String scheme = data.getScheme(); // "http" 
    Log.d(TAG, scheme); 
    String host = data.getHost(); // "twitter.com" 
    Log.d(TAG, host); 
    String inurl = data.toString(); 
    List<String> params = data.getPathSegments(); 
    String first = params.get(0); // "status" 
    String second = params.get(1); // "1234" 
+0

Danke! Es funktioniert perfekt. – aandroidtest

+0

Froh, dass es geholfen hat! –

+0

Ich bekomme immer Null in Pfade :(Aber Daten sind korrekt und nicht null. – djdance