Link zu Applikation in SMS rein schreiben

M

mak

Neues Mitglied
7
Hallo.
Wenn in einer SMS eine Nummer enthalten ist, dann kann ich darauf klicken und erhaltedie Möglichkeit die Nummer anzurufen oder bei langem Drücken
ein Auswahlmenü mit Speichern, SMS senden etc.
Erhalte ich in einer SMS einen Link (Android-Hilfe.de - Android Forum & Community) öffnet sich beim
klicken ein Browser und geht zu dieser Seite.
Mit E- Mail Adresse ist es auch so.
Aber nun zu meiner Frage:
Gibt es die Möglichkeit andere Links in z.B.: eine eigene Anwendung zu schreiben und dann als Leser diesen direkt öffnen zu können.

Grüße
Mak
 
Wenn du auf den Market linken willst, gibt es die market:// URLs.

Ansonsten kannst du einfach dein eigenes Schema definieren, und einen Intent-Filter im Manifest installieren der URLs dieses Types bearbeitet.
 
Irgendwie ist mir das noch nicht ganz klar.
Wie sage ich dem Intent- Filter, dass er auf eine bestimmte
Zeichenfolge in einer SMS reagieren soll.

Ich habe nun den Intent- Filter:

<activity android:name=".NewActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.SECONDSCREEN"></action>

<category android:name="android.intent.category.LAUNCHER"></category>
<data android:host="www.youtube.com" android:scheme="http">
</data>
</intent-filter>
</activity>

Dies soll mir dann die Activity "NewActivity" mit der View secondscreen.xml starten, wenn im Browser YouTube - Broadcast Yourself. aufgerufen wird?
Aber das passiert irgendwie bei mir nicht so.
Der Browser lädt normal die Seite und in meiner Activity passiert nichts.

Und wie ist die "category" für den SMS- Viewer?
Mein Ziel ist ja, das die Anwendung als Link in der SMS markiert wird.
Also in der SMS steht beispielsweise: ".... und hier gehts zur Anwendung".

Grüße
 
Zuletzt bearbeitet:
Sieh dir an wie es beispielsweise der Browser macht:

http://www.google.com/codesearch/p?...OkTjpMM/AndroidManifest.xml&q=android browser

Code:
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
                <data android:mimeType="text/html"/>
                <data android:mimeType="text/plain"/>
                <data android:mimeType="application/xhtml+xml"/>
                <data android:mimeType="application/vnd.wap.xhtml+xml"/>
            </intent-filter>

Action ist also "android.intent.action.VIEW".

Für deine eigene Anwendung würdest du vermutlich ein eigenes Schema definieren müssen (eine andere Möglichkeit fällt mir im Moment nicht ein).

Als Filter dann also z.B. angeben:

<data android:scheme="myapp" />

Ein Link in der SMS könnte dann so aussehen:

myapp://user1

Deine Anwendung könnte dann direkt zu "user1" springen.
 
Vielen Dank erstmal soweit.
Hört sich ja auf jeden Fall an, als würde es theoretisch so, wie ich es mir vorgestellt
habe, klappen.
Wo kann ich denn den/das "scheme" definieren, oder das bestehende erweitern?
Im Manifest wird mit "scheme" ja standardmäßig
"http://schemas.android.com/apk/res/android" angegeben?
Findet man das irgendwo?
Muss ich da dann ein komplett eigenes erstellen und dort angeben?
Hatte eigentlich gedacht, dass ich in der "values- string.xml" einfach noch ein scheme anlegen könnte, und das dann benutze. Geht sowas nicht?

Grüße
Mak
 
Zuletzt bearbeitet:
mak schrieb:
e" definieren, oder das bestehende erweitern?

Mit Schema definieren meinte ich hier nur "eins ausdenken" - und das dann im Intent im Manifest-Filter so angeben.

Android weiß dann wenn ein Link angeklickt wird der fooapp://... heißt, dass dein Programm dafür zuständig ist.

mak schrieb:
Im Manifest wird mit "scheme" ja standardmäßig
"http://schemas.android.com/apk/res/android" angegeben?
Findet man das irgendwo?

Das hat damit eigentlich gar nichts zu tun.

Einfach im Manifest das innerhalb des <activity> Tags angeben:

Code:
<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="myapp" />
            </intent-filter>

Und dann noch rausfinden was BROWSABLE und DEFAULT bedeuten und ob du sie braucht (ich weiß es auch nicht ohne nachzuschauen).
 
Ich habe meinen IntentFilter so aufgebaut:
<activity android:name=".NewActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<data android:scheme="makapp"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

Habe verschiedene Kombinationen ausprobiert, aus category und action
obwohl nach meinem Verständnis action =
<action android:name="android.intent.action.VIEW"></action>
und category =
<category android:name="android.intent.category.LAUNCHER">
passen müßte.
Schicke als SMS:
makapp://makapp
makapp://1
makapp
makapp://

aber nichts davon wird irgendwie als Link angezeigt.
Wo muss ich noch was ändern?
Vielen Dank
Mak
 
mak schrieb:
aber nichts davon wird irgendwie als Link angezeigt.
Wo muss ich noch was ändern?

Ah. Das ist ein Punkt den ich noch gar nicht bedacht habe. Dein Intent-Filter sollte dafür sorgen dass solche Links von deiner App bearbeitet werden, wenn sie jemand denn aufruft. Ob die SMS Anwendung diese Links allerdings tatsächlich auch anklickbar macht, ist wieder eine ganz andere Frage - anscheinend tut sie das nicht.

Das man die SMS App dann dazu überreden kann die Links anzuzeigen, davon weiß ich nichts.

Ein möglicher Umweg wäre aber vlt: Einen kleinen Webservice aufsetzen, einen http:// link anzugeben (der dann hoffentlich ja schon verlinkt wird), und diesen dann einfach auf makapp:// umleiten. Dann würde sich zuerst der Browser öffnen, dann deine App. Etwas unschön, aber vlt (?) die einzige Möglichkeit.
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.535
Data2006
D
S
Antworten
0
Aufrufe
592
Sergio13
S
OnkelLon
Antworten
13
Aufrufe
1.981
OnkelLon
OnkelLon
Zurück
Oben Unten