2011-01-17 26 views
5

Uygulamam tarafından idare edilecek bir SMS bağlantısının olup olmadığını bilmek istiyorum. Örneğin myapp: // blabla gibi görünen bir bağlantı. Ve üzerine tıklayarak myapp bir argüman olarak bağlantı ile açık olacaktır. Bu soru ayrıca, özel bir uzantıya sahip bir dosyadan veya SMS'de olduğu gibi bir bağlantıdan gelen e-postaya da atıfta bulunmaktadır.SMS/postadan bir android uygulamasına bağlantı

Yardımlarınız için çok teşekkürler.


Düzenleme 31/01

Aslında, Greg önerdi ama çalışmıyor olanı yaptı. Böyle bir bağlantı (myapp: // blabla) bir SMS/e-postada tıklanamaz ... Bir şema olarak http ile myapp'ı değiştirdiğimde, çalışır (Android bana myapp veya tarayıcı ile bağlantıyı açması gerekip gerekmediğini sorar). Ama myapp: // blabla bir şema olarak myapp ile tıklanabilir değil. İşte benim kodudur:

<application android:icon="@drawable/icon" android:label="@string/app_name" 
android:debuggable="true"> 
<activity android:name=".myapp" 
      android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar" 
      android:launchMode="singleTask" 
      android:screenOrientation="portrait"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
     <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" android:host="blabla" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".SecondActivity"></activity> 
    <activity android:name=".SettingsActivity"></activity> 
</application> 

cevap

2

Yep bir niyet filtre ile yapabilirsiniz.

Temel olarak Android Manifest'inizde, belirtilen URL'yi işleyen bir etkinlik seçmek istediğiniz etkinliği seçin.

<activity android:name=".myactivies.MyActivity"> 
<intent-filter> 
<action android:name="android.intent.action.VIEW"/> 
<category android:name="android.intent.category.DEFAULT"/> 
<data android:scheme="myapp" android:host="blabla" /> 
</intent-filter> 
</activity> 

Ardından, etkinliğinizin içinde, niyetle getData() öğesini çağırarak URL'yi alabilirsiniz.

+0

Çok teşekkürler Greg! Deneyeceğim. – Vincent

+0

Merhaba Greg. Aslında yaptım ama işe yaramıyor. Böyle bir bağlantı (myapp: // blabla) bir SMS/e-postada tıklanamaz ... Bir şema olarak http ile myapp'ı değiştirdiğimde, çalışır (Android bana myapp veya tarayıcı ile bağlantıyı açması gerekip gerekmediğini sorar). Ama myapp: // blabla bir şema olarak myapp ile tıklanabilir değil. Herhangi bir fikir ? – Vincent

+0

, yazdıklarınızı yayınlayabilir misiniz? Oluşturduğum çözümleyici ve modelin çok hafif olduğunu ve bir şey yarı yapılandırıldığında size söylemeyeceğini buldum, sadece işe yaramaz. –

İlgili konular