Android应用提供另一个视图

时间:2017-06-12 11:24:36

标签: android

我正在寻找一种方法来填充我的应用中的容器视图,其中包含来自其他应用的视图。

主机应用程序(我的应用程序)将使用其他应用程序专门为其提供的视图。想想类似于三星的发射器+ Flipboard,或者Google Now Launcher + Google Now--应用程序的一部分,一个完整的视图区域,由另一个软件包提供。

创建某种SDK的首选方法是什么?是否存在这样做的修复模式,或者这是Android开发的未知领域,还是被应用程序工作的方式彻底禁止?

3 个答案:

答案 0 :(得分:0)

为什么不尝试使用所需的应用API将数据提取到您的应用中,然后将其显示在您的容器中。

不完全符合您的要求,但它可以作为此案例的解决方法。

答案 1 :(得分:0)

  

我正在寻找一种方法来填充我的应用中的容器视图,其中包含来自其他应用的视图。

如上所述,这是不可能的。

  

想想类似于三星发射器+ Flipboard或Google Now Launcher + Google Now的东西 - 应用程序的一部分,整个视图区域,由另一个软件包提供。

这些都不涉及“使用来自其他应用的视图在我的应用中填充容器视图”(强调添加),因为这是不可能的。视图(即View的子类)不能跨进程边界传递。

最有可能的是,您所看到的是其他应用程序启动以对话框为主题的活动(即主题未填满屏幕的活动)。

或者,由于这些是发射器,您可能会看到应用程序小部件,启动器提供应用程序小部件主机,以及通过RemoteViews结构定义UI的应用程序小部件。

理论上可行的,但是在多窗口,导航等的情况下非常不可靠 - 将是“主机”应用程序告诉“提供UI”的应用程序在特定像素的屏幕上绘制一些内容坐标,也许通过一些浮动窗口。

答案 2 :(得分:0)

这在Android中是不可能的,主要是因为它不安全。您可以从其他应用程序请求查看,然后读取数据。

有几种情况会发生这样的事情:

  1. 启动器小部件。但它是您的应用程序,它会显示要显示的数据。
  2. 拆分屏幕。您可以将其用于您的应用,但您无法控制屏幕其他部分的内容。
  3. 所有这些都是平台级别的,您无权访问此类功能。像三星这样的一些原始设备制造商介绍了这样的东西,但这不是主流。

    因此,最佳方法是让应用A将特定数据发送到应用B,然后应用B以所需方式显示此数据。