Native App aus EMail heraus starten

H

hawky76

Neues Mitglied
0
Hallo zusammen,

ich bin relativ neu in der Android Welt und versuche gerade eine App für Doodle zu schreiben (Doodle: easy scheduling). Hierbei handelt es sich um eine Plattform die Onlineumfragen zur Verfügung stellt. Die Einladungen zu den Umfragen werden als Weblinks per EMail verschickt. Für mich stellt sich jetzt die Frage ob es möglich ist, wenn der Anwender auf den Link in der EMail klickt nicht der Webbrowser gestartet wird, sondern meine App. Wenn ja, wie geht das und in welcher Form kommt der Link dann in der App an?

Besten Dank im voraus.

Grüße
/Hawky
 
Sorry, komme erst jetzt dazu das zu testen, leider funktioniert es bei mir auch nicht.

Meine AndroidManifest.xml sieht wie folgt aus:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.terrok_nor.android.doodle"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DoodleActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<!-- eingefügt zum Starten von Doodle-Links -->
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="www.doodle.com" android:scheme="http"></data>
<!-- -->
</intent-filter>
</activity>

</application>


<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>

Leider startet beim Anklicken eines Links immernoch der Browser. Ich habs nur im Emulator getestet, gehe aber davon aus, dass es dort auch funktionieren sollte, oder?

Grüße
/Hawky
 
Moin zusammen,

ok, habs hinbekommen das die App direkt gestartet wird. Vielen Dank für den Link.

Ich müsste jetzt allerdings noch von der App aus auf den Link zugreifen. Hat hier noch jemand eine Idee in welchem Feld ich den Link finde?

Danke!
/Hawky
 
Hab mich nicht mit beschäftigt, aber der Link dürfte im Intent mitgeschickt werden. Gibt eine Funktion namens intent.getExtra()

Bundle extras = intent.getExtras
String meineUrl = extras.getString("URL");
könnte funktionieren, aber frag mal Google. Kann sein das das "URL" falsch ist und da war was anderes hin muss.

ok, habs hinbekommen das die App direkt gestartet wird. Vielen Dank für den Link.

Was war denn falsch, nur falls es nochmal jemand versucht?
 
Hallo FelixL,

vielen Dank für den Hinweis.

Die Abfrage:
getIntent().getExtras().getString("URL");
ist, wie vermutet, nicht ganz korrekt, gab mir aber den eintscheidenden Hinweis.
Die entsprechende Information ist im Datenbereich gespeichert, so dass die Abfrage:
getIntent().getData().getHost() + getIntent().getData().getPath();
das gewünschte Ergebnis liefert.

Zur Aufklärung der ursprünglichen Frage: in dem angegebenen Link war nichts falsch, ich hab es nur an die falsche Stelle kopiert und hatte zudem noch einen Tippfehler drin. Kaum macht mans richtig, klappt es auch. :)

Hier nochmal die Lösung:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="doodle-test.com" android:scheme="http"></data>
</intent-filter>

Grüße
/Hawky
 

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
954
Robby1950
R
Laser5001
  • Laser5001
Antworten
2
Aufrufe
870
Laser5001
Laser5001
netfreak
  • netfreak
Antworten
10
Aufrufe
437
netfreak
netfreak
Zurück
Oben Unten