意图不适用于各种应用程序

时间:2013-06-19 00:06:14

标签: android android-intent apk

我看到一种非常奇怪的行为,当我有两个单独的应用程序并且我一边加载它们(或者从Eclipse运行它们)并与另一个启动一个,在Intent中提供一些数据时,接收应用程序获取资讯

然而,当这两个应用程序的apks通过浏览器下载(不是从Play商店,只是从互联网地址下载并安装)安装时,接收应用程序上的Intent会显示为空。

我想知道我是否忽略了一些许可或限制,如果没有,我可以做些什么来解决这个问题。除了安装方法和看到这种副作用之外,我真的没有改变任何东西,因此,我很确定这不是某种红鲱鱼。已经在众多设备上进行了测试。

这两个应用程序具有不同的软件包名称,并且没有任何关联(除了具有相同的加密密钥,但我不认为这与中国的茶叶价格有任何关系)。< / p>

1 个答案:

答案 0 :(得分:0)

事实证明,我完全错过了Activities之间(似乎)重要的数据传输机制,这里记录了: http://developer.android.com/training/sharing/send.html

在这里

http://developer.android.com/training/sharing/receive.html

发送活动需要添加数据(在我的例子中是Stringfied JSON)

//...whatever other Intent setup you need
it.setAction(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_TEXT, jsonObj.toString());
it.setType("text/plain");
startActivity(it);

接收Acitivity以及您在上述文档中看到的其他内容需要在Manifest中指明它愿意接受这样的值:

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

我没有看过这个文档,并且以完全通用的方式传递数据(只是将Extras打包到Intent中)。我想,更大的问题是,为什么我的通用方法可以工作,如果有这样一种特定的方式,它应该起作用。显然我的错是没有阅读所有文档和播放,但我真的很好奇Android在通过USB加载的应用程序与从互联网上加载的应用程序之间的区别。

无论如何......生活和学习。