Android:SMS应用程序可在;选择要用“打开”打开此应用程序-对话
我正在开发一个短信应用程序。如何在“选择打开此应用程序的应用程序”对话框中使该应用程序可用 谢谢, 马丁 /编辑:我想你只是误解了我 我不想用我的应用程序写短信,我希望其他人可以用我的应用程序写短信,并且当你在联系人列表中选择发送短信时,我的应用程序会列在“选择要打开的应用程序”对话框中 我的应用程序清单摘录:Android:SMS应用程序可在;选择要用“打开”打开此应用程序-对话,android,sms,android-4.0-ice-cream-sandwich,Android,Sms,Android 4.0 Ice Cream Sandwich,我正在开发一个短信应用程序。如何在“选择打开此应用程序的应用程序”对话框中使该应用程序可用 谢谢, 马丁 /编辑:我想你只是误解了我 我不想用我的应用程序写短信,我希望其他人可以用我的应用程序写短信,并且当你在联系人列表中选择发送短信时,我的应用程序会列在“选择要打开的应用程序”对话框中 我的应用程序清单摘录: <activity android:name=".MainActivity" android:label="@string/app_name
<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”并不能解决这个问题。这是通过意图过滤器完成的
在“意图解析”和“意图过滤器”下查看,我遇到了类似的问题。我就是这样修好的。以下是我在清单文件中声明活动的方式:
<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>
只需将这两个意图过滤器添加到您的主要活动中, 您的应用程序将在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>
我想你误解了我的意思:我不想打开另一个应用程序来写短信,我希望我的应用程序可以选择用它来写短信。意图过滤器出现在应用程序的清单中,声明它的一个组件具有处理意图的能力。因此,您需要添加一个适当的意图过滤器以使自己进入菜单。看起来您在清单中添加了一些意图过滤器,但可能不是正确的。检查这个答案,了解如何查询您需要捕捉的意图。