在我自己的应用程序中接收Whatsapp“通过发送聊天”意图

时间:2018-12-30 21:10:03

标签: android android-intent callback whatsapp

我正在构建一个应用,该应用将要求用户将聊天从WhatsApp导出到我的应用中。 如何在“通过...发送聊天”意图窗口中显示我的应用?

1 个答案:

答案 0 :(得分:2)

正确的方法是添加以下intent-filter:

    <intent-filter>
        <action android:name="android.intent.action.SENDTO"/>
        <data android:scheme="mailto"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.SEND"/>
        <data android:mimeType="*/*"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.SEND_MULTIPLE"/>
        <data android:mimeType="*/*"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>

然后您可以使用以下方法阅读聊天内容:

            Uri uri = intent.getClipData().getItemAt(i).getUri();
            InputStream inputstream = getContentResolver().openInputStream(uri);
            byte[] data = new byte[1024];
            int bytesRead = inputstream.read(data);

            while (bytesRead != -1) {
                chatContent.append(new String(data));
                bytesRead = inputstream.read(data);
            }

            // TODO - Here we can do whatever we want with the chat content chatContent.toString()
            if (mainTextView != null){
                mainTextView.setText(chatContent.toString());
            }