2012-04-26 40 views
3

我正在開發一個短信應用程序。如何在「選擇要使用哪個應用程序」對話框中使應用程序可用?Android:短信應用程序可在「選擇哪個應用程序來打開此」-dialog

感謝, 馬丁

/編輯:我認爲你誤解我了。

我不想用我的應用程序寫短信,我希望其他人可以使用我的應用程序寫短信,並且我的應用程序列在「選擇要打開此應用程序的應用程序」對話框中聯繫人列表中的短信。

從我的應用程序清單的摘錄:

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

      <category android:name="android.intent.category.LAUNCHER" /> 
      <category android:name="android.intent.category.APP_MESSAGING" /> 
     </intent-filter> 
    </activity> 

添加類別「APP_MESSAGING」只是不解決這個問題。

回答

3

這是用意向過濾器完成的。

http://developer.android.com/guide/topics/intents/intents-filters.html

下看 「意圖分辨率」 和 「意圖過濾器」

+0

我想你是誤會了我: 我不想打開另一個應用程序來寫短信,我希望我的應用程序可以選擇用它來寫短信。 – 2012-04-26 19:46:02

+1

Intent過濾器進入應用程序的清單,該應用程序通告其組件之一具有處理意圖的能力。所以你需要添加一個適當的意圖過濾器來讓自己進入菜單。 – 2012-04-26 20:19:29

+0

它看起來像你添加了一些意圖過濾器的清單,但它可能不是正確的。檢查這個答案的方式來查詢你需要捕捉什麼意圖。 http://stackoverflow.com/questions/7447079/andoird-sms-intent-filters-priority-listing – 2012-04-27 21:36:22

0

嗯,我也有類似的問題。這是我如何修復它。這是我宣佈我的清單文件活動:

<activity 
     android:name="com.example.sms.MainActivity" 
     android:label="@string/title_activity_main" > 
     <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.SENDTO"/> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:scheme="sms" /> 
       <data android:scheme="smsto" /> 
     </intent-filter> 

    </activity> 
0

只需添加這兩意圖過濾到您的主要活動, 您的應用程序將在SMS應用程序列出可用

<activity 
     android:name=".activities.MainAcitivty" 
     android:label="@string/app_name" > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <!--add these intent filters to your app--> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <data android:mimeType="vnd.android.cursor.dir/mms"/> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <data android:mimeType="vnd.android-dir/mms-sms"/> 
     </intent-filter> 
</activity> 
相關問題