java - 如何从不同的android应用程序传递一个serializableExtra?
问题描述
我正在尝试将 SerializableExtra 从应用程序发送到另一个应用程序。我用
resultIntent.putExtra("thing", fc);
并在接收应用程序中:
Thing theThing = (Thing) data.getSerializableExtra("thing");
但由于应用程序的名称不同,我收到以下错误:
Java.lang.RuntimeException: Parcelable encountered ClassNotFoundException reading a Serializable object (name = com.test.senderapp.Thing)
而且我无法修改发件人应用程序,我需要找到一种方法使其仅控制接收意图的应用程序。
谢谢
解决方案
使用内容提供者来实现这一点。 https://developer.android.com/guide/topics/providers/content-providers。
我们在讨论这个问题时非常相似;我们希望键盘可以与另一个应用程序共享数据,并将其与其他功能组合使用。
目标是您定义要公开的数据以及其他应用程序可以使用的数据,类似于联系人的应用程序所做的事情;您可以访问 CursorLoader 以获取所有用户的联系人。
另一方面,作为第二种解决方案,您可以让您的第二个应用程序接收一个字符串并将对象作为 JSON 发送;但如果您要继续添加更多对象或总结其他应用程序,我更喜欢第一个。
推荐阅读
- android - 如何使用下面的数组显示我的 Firebase 数据库?
- php - 我需要这个选择有效
- c# - CS0023 C# 运算符不能应用于“字符串 []”类型的操作数
- ios - Square Point of Sales API 发送 reference_id 或 userInfoString
- javascript - Wikidata 查询城市使用的语言列表
- android - Kotlin 片段类型不匹配
- google-apps-script - Drive.Files.Copy 和“父母”不起作用
- php - 如何在非主键列上添加自动增量,但它们仍然是我想设置为主键的另一列
- mysql - 创建计数器时创建存储过程出错
- artifactory - Artifactory 启动脚本在 Ubuntu 18.04.1 上无法正常工作