2012-05-18 23 views
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> 

看着就这么几个例子,使用比特的关系有关问题的作品后,我已经把一个简单的(但笨拙的)一段代码,截至目前,它收到了来自画廊的图像。我也能够成功地将收到的图片上传到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(); 
} 

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

回答

3

你可以得到MIME类型的应用程序接收,作为意向数据:

String type = getIntent().getType(); 
+0

这样做的伎俩。我可能还有几个问题。但是这个人做到了。 :-) 非常感谢。 –

相关问题