0

我一直在研究如何在两个应用程序之间共享数据。这是我想要完成的事情。我有一个 ocr 应用程序和一个 XMPP 应用程序。XMPP 应用程序已连接到 openfire 服务器,并成功从 android 手机发送消息到我笔记本电脑上的 spark 客户端信使。现在我想做的是通过 ocr 应用程序中的相机拍照,然后将其转换为存储在字符串中的文本。现在我想将该字符串提供给我手机上的 XMPP 客户端应用程序,以便它可以将该文本发送到我笔记本电脑上的 spark 客户端信使。我已经成功地在这里解释了我的情况。我尝试使用套接字编程来做到这一点,但失败了。然后我看到有人说可以通过 sharedpreferences 对象来做到这一点,但是 xmpp 应用程序如何知道现在 ocr 应用程序已经转换了文本并且我应该接收它是没有意义的。请帮我解决这个问题。解释以及一些代码将不胜感激!

4

2 回答 2

1

使用广播接收器 ( http://developer.android.com/reference/android/content/BroadcastReceiver.html ) 跨应用程序发送数据。

这可能有助于 如何在 Android 的不同应用程序中使用广播接收器?

于 2013-03-30T19:41:35.597 回答
0

您的问题是:如何将数据从运行手机的 ocr 应用程序发送到运行在同一部手机中的 xmpp 应用程序。

基本上,您正在寻找关于两个应用程序(进程)如何通信的解决方案。

解决方案:

先决条件1:有一个同意广播ocr和xmpp应用程序的ACTION。

先决条件2:在您的 ocr 应用程序中创建一个数据库表来存储您的文本。

先决条件3:在您的数据库之上创建一个内容提供者

现在,一旦在您的 ocr 应用程序中拍摄一些照片,将相机转换的文本数据放入您的数据库表中。使用上述约定的 ACTION 发送广播,以便 XMPP 应用程序了解您的数据已准备好。在发送此广播时,发送您已在其中放置要共享的文本的表的 URI。

另一方面,一旦xmpp app在其receiver中接收到广播,根据URI,它可以通过内容解析器从ocr app的表中查询和获取数据。

注意:您可以直接将您的相机图片存储在sd卡中,并且可以将该图片的路径放入您的数据库表中。而不是将图片转换为文本格式。

这只是我对如何做到这一点的随机想法。也许你可以获得比这更好的技术。

您可以研究的其他想法是:

  1. 在两个应用程序之间放置一个公共共享内存。将共享数据放入该内存区域并访问它。(比如活页夹如何在内部工作)

  2. 为 ocr 和 xmpp 应用程序提供相同的用户 id,以便 xmpp 可以直接访问 ocr 应用程序的数据库表的数据。如果两个应用程序具有相同的 linux 用户 ID,则两者都可以共享共享的首选项文件或数据库文件。

希望能帮助到你。

于 2013-12-04T08:09:18.883 回答