当我选择一些文本并单击共享时,它将显示我的应用程序

时间:2018-07-26 09:28:29

标签: android

我想构建一个android应用程序。当我选择一些文本并单击共享时,它将显示我的应用程序。有人可以帮助我我需要使用什么以及如何获得吗?

2 个答案:

答案 0 :(得分:2)

您需要告诉Android您的应用程序可以处理文本。为此,您可以在Android清单文件中定义意图过滤器。

例如:

<activity android:name=".ui.MyActivity" >
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
</activity>

在这里,您告诉系统,任何人共享“文本/纯文本”类型的内容时,请选择“显示我的应用”。

如果用户选择了您的应用,您将在ui.MyActivity类中获取数据,如下所述:

void onCreate (Bundle savedInstanceState) {
    ...
    // Get intent, action and MIME type
    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();

    if (Intent.ACTION_SEND.equals(action) && type != null) {
        if ("text/plain".equals(type)) {
            handleSendText(intent); // Handle text being sent
        }
    } else {
        // Handle other intents, such as being started from the home screen
    }
    ...
}

void handleSendText(Intent intent) {
    String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);
    if (sharedText != null) {
        // Update UI to reflect text being shared
    }
}

答案 1 :(得分:0)

在意图过滤器下方添加到清单中的活动

<activity android:name=".YourActivity" >

        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter> >
    </activity>

这里是文档:https://developer.android.com/training/sharing/receive