0

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

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

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

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

4

1 回答 1

0

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

和这里

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

发送活动需要添加数据(在我的情况下为 Stringfied JSON as)

//...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 侧加载的应用程序与从互联网侧加载的应用程序之间有什么区别。

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

于 2013-06-19T00:51:15.490 回答