0

我正在开发一个我想在“共享”列表中注册的应用程序。该部分已经在清单文件中使用以下标签进行了处理:

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

在查看了一些关于 SO 的示例并使用每个相关问题的片段后,我整理了一个简单(但很笨拙)的代码片段,截至目前,它接收从画廊共享的图像。我还能够成功地将收到的图像上传到 Facebook。

我的问题是,我希望我的应用程序能够共享来自各种应用程序的各种内容。例如,来自 Twitter 的推文、来自浏览器的 URL 等。如何确定从另一个应用程序共享到我的应用程序的数据/内容的确切性质?我可以适当地处理接收到的数据。但我对如何弄清楚共享了哪些内容感到困惑。

我为共享图像而编写的代码是:

注意:我目前在onCreate()方法中运行这段代码,没有任何错误检查。当我对所关注的问题有所了解时,我会将它们放在适当的位置。

ImageView imgSelectedPhoto = (ImageView)findViewById(R.id.imgDisplaySelectedImage);

Uri imageURI = (Uri) getIntent().getExtras().get(Intent.EXTRA_STREAM);
Bitmap bitmap = null;
try {
    bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageURI));
        try {
        Utility.scaleImage(getApplicationContext(), imageURI);
        imgSelectedPhoto.setImageBitmap(bitmap);
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
}

非常感谢任何帮助/建议/建议。

4

1 回答 1

3

您可以获得应用程序接收到的 MIME 类型的数据,如下所示:

String type = getIntent().getType();
于 2012-05-18T15:17:23.887 回答