将意图传递给另一个android应用程序

将意图传递给另一个android应用程序,android,Android,我知道另一个应用程序接受intent类型:vnd.android.cursor.item/postal-address 我可以打电话给: Uri dataUri = Uri.parse("test"); Intent intent = new Intent(android.content.Intent.ACTION_VIEW); intent.setDataAndType(dataUri, "vnd.android.cursor.item/postal-address"); 问题是,

我知道另一个应用程序接受intent类型:vnd.android.cursor.item/postal-address

我可以打电话给:

Uri dataUri = Uri.parse("test");
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
 intent.setDataAndType(dataUri, "vnd.android.cursor.item/postal-address");
问题是,如何传递格式良好的地址

我通过了 Uri dataUri=Uri.parse(“content://com.android.contacts/data/2057"); 它可以工作,但我想传递新地址(不是来自联系人)


更新:此外部应用程序有两个目的过滤器:

意向过滤器: 动作:'android.intent.action.MAIN' 类别:“android.intent.category.DEFAULT” 数据: mimeType:'vnd.android.cursor.item/邮政地址'

意向过滤器: 动作:'android.intent.action.MAIN' 类别:“android.intent.category.DEFAULT” 数据: mimeType:'vnd.android.cursor.item/postal-address_V2' 方案:“内容” 主持人:“com.android.contacts”


谢谢。

您可以通过创建一个捆绑包并将其添加到Intent对象中,然后检索Intent并随后读取捆绑包数据来传递数据。类似的内容将创建一个简单的捆绑包:

Bundle b = new Bundle();
b.putString("address", addressTV.getText().toString()); //can be whatever address string you want
intent.putExtras(b);

我的观察结果如下。intent中的这个外部应用程序接收联系人的id。然后提取该联系人并获取联系人的邮政地址。因此,该应用程序向联系人内容提供商进行查询,并自行提取邮政地址。因此,您应该为该应用程序提供联系人的有效url

所以,我认为这个外部应用程序只需要联系人内容提供商的url。您不能强制应用程序从其他源提取数据,除非您不控制此外部应用程序

更新:如果您只想使用此地址显示谷歌地图,请尝试以下步骤:

Uri geoUri = Uri.parse("geo:0,0?q=your_address");
Intent mapCall = new Intent(Intent.ACTION_VIEW, geoUri);  
startActivity(mapCall);

我无法控制检索部分。外部应用程序只接受intent mimeType=“vnd.android.cursor.item/postaladdress”,这就是我想要发送的内容。默认情况下,谷歌地图应该从这样的意图中打开地址,但我不知道如何使用这样的mimeType传递数据。如果你只想启动谷歌地图应用程序,你可以使用带有Maps.Google.com的ACTION\u VIEW intent作为URI,如下所示:
intent intent=new intent(android.content.intent.ACTION\u VIEW,URI.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345“)
谢谢。我认为你将邮寄地址传递给此应用程序的唯一正确方法是创建新的临时联系人并传递其url。显示此地址的代码将非常有用。PS。谢谢代码示例,但这不是谷歌地图。此外部应用程序有两个意向过滤器:意向过滤器:操作:“android.intent.action.MAIN”类别:“android.intent.category.DEFAULT”数据:mimeType:“vnd.android.cursor.item/postaladdress”意图过滤器:操作:“android.intent.action.MAIN”类别:“android.intent.category.DEFAULT”数据:mimeType:“vnd.android.cursor.item/postaladdress_V2”方案:“conent”主机:“com.android.contacts”