【问题标题】:Is it possible to get data from another application in android?是否可以从android中的另一个应用程序获取数据?
【发布时间】:2011-12-12 07:37:32
【问题描述】:

我从安卓市场下载了一个应用程序。我只需要输入一个数字,然后单击输入,该应用程序就会生成一个包含一些内容的表格。

我希望我的应用程序复制表格的内容。我的应用程序调用了该应用程序。用户必须手动将数据放入编辑文本中,然后按 Enter。在那之前,我的应用程序将在后台运行。

  1. 这可能吗?
  2. 怎么样?

另一个问题: 我可以只截取第二个应用程序的屏幕截图,然后使用图像到文本解码器来获取该屏幕上的数据吗?

【问题讨论】:

  • 您好,我需要与您在此问题中提出的完全相同的解决方案,您对此有所了解或知道吗?
  • 嘿,不,那是不可能的。当时可用的文本解码器无法将确切的图像转换为文本。有很多问题。

标签: android


【解决方案1】:

有两种方式:

1) Intent:如果您想在应用之间共享少量文本或数字数据,您应该发送一个包含数据的 Intent。

2) 内容提供者:将您的应用程序中的文件提供给另一个应用程序就是向接收应用程序发送文件的内容 URI 并授予对该 URI 的临时访问权限。具有临时 URI 访问权限的内容 URI 是安全的,因为它们仅适用于接收 URI 的应用,并且会自动过期。

【讨论】:

  • 如何通过intent共享数据
【解决方案2】:

Here 是有关应用程序之间数据存储和数据共享的完整文档。我怀疑你可以共享数据库,但你可以尝试使用 external storage 来做同样的事情

【讨论】:

  • 这个应用程序不是我的,所以我什至不知道数据库在哪里,所有数据都存储在哪里。在那种情况下,我该怎么办?
  • 我想你无法获取其他应用程序的任何私人数据。如果第三方应用想要共享任何数据 - 它使用文档中描述的方法
【解决方案3】:

您似乎想将一些数据传递给该应用程序并运行它,对吗?当且仅当该应用程序为您提供了一些“钩子”供您执行此操作时,才有可能。

在 Android 中,无论应用是否为您提供任何挂钩,您都可以通过执行以下操作来启动应用:

Intent intent=new Intent();
intent.setPackage(TARGET_APP's package name);
context.startActivity(intent);

这应该会启动该应用程序,但是,如果它没有为您提供挂钩,则该应用程序将按正常运行方式运行。在这种情况下,您的数据将不会生效。如果它提供了钩子,你可以通过intent.putExtra("KEy",value)put data 然后启动那个应用程序。

另一方面,如果您想从某个应用中读取一些数据,当且仅当该应用允许您这样做时才有可能。应用生成的数据默认是私有的。

【讨论】:

  • 感谢您的回答,我已经编写了启动应用程序的代码,它工作正常,但我需要访问数据。我做不到。
  • 如果该应用没有为某些第三方应用设计传递数据的机制,则不可能这样做。
  • 抱歉,我认为不会。
  • 我们可以截屏吗?我搜索了网络,得到了“设备需要root”之类的结果。我认为第二个选项是,拍摄屏幕截图,然后将图像转换为文本!这可能吗?
  • 在自己的应用程序中,无需root即可截图,如果要随时截图,手机必须root。即使这样,直接从图形中读取文本也很困难,没有你的干预,我想。您需要该应用程序的什么功能?也许您可以搜索一些开源 jar 作为替代方案。
【解决方案4】:

Android 对单个应用程序进行沙盒处理,因此您只能通过其公开的服务(意图和内容提供程序)与其他应用程序进行交互。在这里扎根几乎肯定无济于事。

能够从您一无所知的第三方应用程序获取数据可能是不可能的,即使有可能,截屏也是混乱且不可靠的。

为什么不联系开发人员并说明您想要做什么,看看他们是否会为您提供从他们的应用程序中获取数据的合理方式?

【讨论】:

    猜你喜欢
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    相关资源
    最近更新 更多