2013-09-27 8 views
7

Attualmente nella mia app, ho il mio schema URI per rilevare quando l'utente fa clic su un particolare URI.Ricezione di dati per lo schema di URL personalizzato in Android

codice utilizzato in Manifest file è come di seguito:

<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> 

Se un utente fa clic su un link, che ha il mio personalizzato URI in del browser, sarà ora popup a opzioni per l'utente di scegliere la mia app.

Ma come faccio a passare questi dati che sono il collegamento alla mia app quando vengono avviati per un'ulteriore elaborazione? In pratica come faccio a passare i dati dal browser alla mia app?

Grazie in anticipo

+0

Perché imposta android.intent.action.VIEW due volte? – portfoliobuilder

+0

@portfoliobuilder Dovrebbe essere una volta, suppongo che non abbia generato alcun errore se scritto due volte, quindi l'avrei perso. – aandroidtest

risposta

9

Supponiamo l'url si fa clic è http://twitter.com/status/1234 È possibile ottenere i dati utilizzando il metodo seguente.

// 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

Grazie! Funziona perfettamente. – aandroidtest

+0

Felice di averlo aiutato! –

+0

Ottengo sempre null in Paths :(Ma i dati sono corretti e non nulli. – djdance