Android深层链接(意图过滤器)数据大小限制?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android深层链接(意图过滤器)数据大小限制?相关的知识,希望对你有一定的参考价值。

我正在使用intent过滤器深度链接到另一个应用程序,同时传递数据查询字符串语法如下:

myappscheme://com.domain.myappname/receivingIntent?data=MY_DATA_HERE

这按预期工作。由于我在查询字符串中传递数据,我想知道是否有跟随URL scheme (GET query string limits)的大小限制

思想应用程序与浏览器不同,我只想确定是否有任何限制。我确实通过Deep linking / 上的android文档,但没有提到大小。

P.S:

  • 我拥有这个应用程序(不用担心集成任何第三方应用程序)
  • 我正在构建的应用程序不是本机的(使用Kony)。它只支持这种共享方式,所以我没有其他选择。
  • 我已经在模拟器上测试了64k字符串并按预期工作。
答案

发布我自己未经验证的答案,因为我没有进一步开展这项活动。

正如Simon上面的评论,根据Android doc对捆绑大小的限制

通过intent发送数据时,应小心将数据大小限制为几KB。发送过多数据可能导致系统抛出TransactionTooLargeException异常。

来自:https://developer.android.com/guide/components/activities/parcelables-and-bundles

在远程过程调用期间,调用的参数和返回值将作为存储在Binder事务缓冲区中的Parcel对象传输。如果参数或返回值太大而不适合事务缓冲区,则调用将失败并抛出TransactionTooLargeException。

Binder事务缓冲区具有有限的固定大小,当前为1Mb,由进程正在进行的所有事务共享。因此,即使大多数单个事务的大小适中,当有许多事务正在进行时,也会抛出此异常。

来自:https://developer.android.com/reference/android/os/TransactionTooLargeException

以上是关于Android深层链接(意图过滤器)数据大小限制?的主要内容,如果未能解决你的问题,请参考以下文章

意图过滤器不适用于android中的ActivityTestRule

使用意图不打开应用程序的 Android 深层链接

Android 深层链接 - 不显示意图选择器弹出窗口,强制打开应用

深层链接意图不起作用

Android 深度链接。从历史记录打开应用程序时,意图不会重置

我无法检索应在 Android 上的意图数据内的 Firebase 动态链接