Android:短信应用程序可在“选择要打开它的应用程序”中使用-dialog

时间:2012-04-26 17:53:52

标签: android sms android-4.0-ice-cream-sandwich

我正在开发一个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”并没有解决它。

3 个答案:

答案 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>