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

问题描述 投票:2回答:1

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

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

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

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

P.S:

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

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

正如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

© www.soinside.com 2019 - 2024. All rights reserved.