我一直在研究如何在两个应用程序之间共享数据。这是我想要完成的。我有一个ocr应用程序和一个XMPP应用程序。 XMPP应用程序已连接到openfire服务器,并成功从Android手机发送消息到我的笔记本电脑上的客户端信使。现在我想做的是在ocr应用程序中通过相机拍照,然后将其转换为存储在字符串中的文本。现在我想在我的手机上为XMPP客户端应用程序提供该字符串,以便它可以将该文本发送到我的笔记本电脑上的spark客户端信使。我已经成功地在这里解释了我的情景。我试过套接字编程来做到这一点,但失败了。然后我看到有人说通过sharedpreferances对象可以做到这一点但是没有意义xmpp应用程序如何知道现在ok应用程序已经转换了文本并且我应该接收它。请帮我解决这个问题。一些代码的解释将受到高度赞赏!
答案 0 :(得分:1)
使用广播接收器(http://developer.android.com/reference/android/content/BroadcastReceiver.html)在应用程序之间发送数据。
这可能会有所帮助 How to use Broadcast Receiver in different Applications in Android?
答案 1 :(得分:0)
您的问题是:如何将运行手机的ocr应用程序中的数据发送到同一手机中运行的xmpp应用程序。
基本上,您正在寻找两个应用程序(流程)如何进行通信的解决方案。
<强>溶液强>
先决条件1:同意一项行动同意广播ocr和xmpp应用程序。
先决条件2:在ocr应用程序中创建数据库表以存储文本。
先决条件3:在数据库之上创建内容提供者
现在,在您的ocr应用程序中,您拍摄了一些照片, 将相机转换后的文本数据放入数据库表中。 使用上述约定的ACTION发送广播,以便XMPP应用程序了解您的数据已准备就绪。发送此广播时,会发送您已将文本放入其中的表的URI。
另一方面,一旦xmpp应用程序收到其接收器中的广播, 基于URI,它可以通过内容解析器查询和获取ocr app表中的数据。
注意:您可以直接将相机图片存储在SD卡中,并可以将该图片的路径放在数据库表中。而不是将图片转换为文本格式。
这只是我对你如何做到这一点的随意思考。也许你可以获得比这更好的技术。
您可以考虑的其他想法是:
在两个应用程序之间放置一个公共共享内存。将共享数据放在该内存区域并访问它。 (比如粘合剂如何在内部工作)
为ocr和xmpp应用程序提供相同的用户ID,以便xmpp可以直接访问ocr应用程序的数据库表的数据。如果两个应用程序具有相同的linux用户ID,则两者都可以共享共享首选项文件或数据库文件。
希望它有所帮助。