从intent中提取所有数据,而不使用特定索引或字符串键

时间:2012-10-25 11:30:14

标签: android android-intent

我正在尝试从其他应用程序来自SHARE BUTTON的Intent中提取数据。无论是文本还是更复杂的数据都无所谓。例如,我想在不知道Android Contact应用程序使用的密钥的情况下,将从“联系人”应用程序共享的数据提取到我的应用程序。

是否存在循环或迭代Intent的方法,我尝试使用for循环并通过intent.getExtras(n),但它给了我空值。

3 个答案:

答案 0 :(得分:0)

Bundle extras = intent.getExtras();
if (extras != null){
   Log.d("EXTRAS", extras.toString());
}

我已经更新了示例,因此更容易理解

答案 1 :(得分:0)

试试这个:

getIntent().getExtras().get("android.intent.extra.STREAM")
getIntent().getClipData() 
在我的设备上

这个对象是:

getIntent().getExtras().get("android.intent.extra.STREAM") = {android.net.Uri$HierarchicalUri@830027572808}"content://com.android.contacts/contacts/as_vcard/2574i5f5fc0900f5c945c"

getIntent().getClipData() = {android.content.ClipData@830027557696}"ClipData { text/x-vcard {U:content://com.android.contacts/contacts/as_vcard/2574i5f5fc0900f5c945c} }"

如果你得到类似的东西就是URI,所以这是你的联系方式。如何从这个uri中提取数据是另一个问题。

答案 2 :(得分:-1)

您可以启用调试器,在指令上放置一个断点,并在指定的时间内查看Intent extra包含的内容。

或者你执行你所说的并循环,直到你得到NullPointerException。