1

我正在尝试通过发送短信在两个应用程序之间进行通信。这是我的第一个应用程序,其中包含一个按钮,该按钮将调用操作发送,以便所有其他具有操作发送的应用程序出现在此对话框上。

((Button) findViewById(R.id.button1))
        .setOnClickListener(new OnClickListener() {
            @Override  
            public void onClick(View arg0) {
                Intent intent = new Intent(); 
                intent.setAction(Intent.ACTION_SEND);
                intent.putExtra("ComingFrom", "Activity 1");  
                final int result = 1;
                startActivityForResult(Intent.createChooser(intent, "Sending File..."),result); 
            }
        });

现在这是我的第二个应用程序,将获得意图。

// Get the intent that started this activity
Intent intent = getIntent();
Uri data = intent.getData();

if (intent != null) {
    // Figure out what to do based on the intent type
    if (intent.getType().indexOf("image/") != -1) {
        // Handle intents with image data ...
    } else if (intent.getType().equals("text/plain")) {
        // Handle intents with text ...
    }
}

这是我的第二个应用程序清单,其中包含操作 SEND。

<intent-filter>
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="text/plain" />
            <data android:mimeType="image/*" />
        </intent-filter>

但问题是我没有得到一个显示我的其他应用程序的对话框,而是显示没有应用程序来执行此操作。我究竟做错了什么?

4

2 回答 2

3

当你启动你的意图时,你还应该在你的包中添加一个 mimetype 属性。

 intent.setType("text/plain");

例如。

于 2013-03-30T06:43:53.483 回答
2

您需要使用此设置类型以发送文本、图像等,因为类型是 mime 类型。

for simple text or plain text you need to use text/plain or for image you need to set image/*

if you attaching any image file or not then also it'll open default application in android

intent.setType("text/plain");

or for (using with image file sending)

intent.setType("image/*");
于 2013-03-30T06:49:05.597 回答