Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:SMS应用程序可在;选择要用“打开”打开此应用程序-对话_Android_Sms_Android 4.0 Ice Cream Sandwich - Fatal编程技术网

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>


我想你误解了我的意思:我不想打开另一个应用程序来写短信,我希望我的应用程序可以选择用它来写短信。意图过滤器出现在应用程序的清单中,声明它的一个组件具有处理意图的能力。因此,您需要添加一个适当的意图过滤器以使自己进入菜单。看起来您在清单中添加了一些意图过滤器,但可能不是正确的。检查这个答案,了解如何查询您需要捕捉的意图。