1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Link zu Applikation in SMS rein schreiben

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von mak, 24.08.2009.

  1. mak, 24.08.2009 #1
    mak

    mak Threadstarter Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    7
    Registriert seit:
    13.01.2009
    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
     
  2. miracle2k, 25.08.2009 #2
    miracle2k

    miracle2k Android-Hilfe.de Mitglied

    Beiträge:
    89
    Erhaltene Danke:
    15
    Registriert seit:
    03.07.2009
    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.
     
  3. mak, 26.08.2009 #3
    mak

    mak Threadstarter Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    7
    Registriert seit:
    13.01.2009
    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: 26.08.2009
  4. miracle2k, 29.08.2009 #4
    miracle2k

    miracle2k Android-Hilfe.de Mitglied

    Beiträge:
    89
    Erhaltene Danke:
    15
    Registriert seit:
    03.07.2009
    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.
     
  5. mak, 31.08.2009 #5
    mak

    mak Threadstarter Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    7
    Registriert seit:
    13.01.2009
    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: 31.08.2009
  6. miracle2k, 02.09.2009 #6
    miracle2k

    miracle2k Android-Hilfe.de Mitglied

    Beiträge:
    89
    Erhaltene Danke:
    15
    Registriert seit:
    03.07.2009
    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.

    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).
     
  7. mak, 02.09.2009 #7
    mak

    mak Threadstarter Neuer Benutzer

    Beiträge:
    16
    Erhaltene Danke:
    7
    Registriert seit:
    13.01.2009
    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
     
  8. miracle2k, 02.09.2009 #8
    miracle2k

    miracle2k Android-Hilfe.de Mitglied

    Beiträge:
    89
    Erhaltene Danke:
    15
    Registriert seit:
    03.07.2009
    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.
     

Diese Seite empfehlen