我正在开发一个SMS应用程序。如何在“选择要使用哪个应用程序打开此对话框”对话框中启用该应用程序?
谢谢, 马丁
/编辑:我认为你误解了我。
我不想用我的应用程序写短信,我希望其他人可以使用我的应用程序编写短信,并且我的应用程序列在“选择要打开此对话的应用程序”对话框中联系人列表中的短信。
我的Application Manifest摘录:
<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”并没有解决它。
答案 0 :(得分:3)
这是通过意图过滤器完成的。
http://developer.android.com/guide/topics/intents/intents-filters.html
查看“意图解析”和“意图过滤器”
答案 1 :(得分: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>
答案 2 :(得分: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>