1

テキスト メッセージを送信して 2 つのアプリ間で通信しようとしています。これは、アクション送信を呼び出すボタンを含む最初のアプリであり、アクション SEND を持つ他のすべてのアプリがこのダイアログに表示されます。

((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); 
            }
        });

これは、インテントを取得する 2 番目のアプリケーションです。

// 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 ...
    }
}

これは、Action SEND を含む 2 番目のアプリケーション マニフェストです。

<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 に答える