在没有特定索引或字符串密钥的情况下从意图中提取所有数据



我正在尝试从其他应用程序中从共享按钮中提取数据。不管是文本还是更复杂的数据都没关系。例如,我想在不知道Android Contact应用使用的密钥的情况下将共享的数据从联系人应用程序中提取。

是否有循环或通过意图迭代的方法,我尝试使用for循环并通过intent.getExtras(n),但它给了我无效的值。

尝试以下:

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中提取数据是另一个问题。

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

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

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

或者您要做的事情并循环循环,直到获得NullpoInterException。

相关内容

最新更新