2016-01-28 46 views
0

我正在制作Android翻译应用程序在后台工作,阅读屏幕上显示的文本,翻译和显示屏幕底部的翻译句子。句子(也可能是一些图片)必须点击。Android是否允许后台应用程序通过正在运行的应用程序打开视图?

我担心的是我是否可以通过正在运行的应用程序上的消息或图像进行查看。 Android支持这种功能吗?我正在开发Android Studio。提前致谢。

+0

检查此回复http://stackoverflow.com/a/34409531/1140237。这家伙给出了如何从后台运行服务显示视图的答案。 'HBFloatingHead'用于显示来自服务的视图 – user1140237

回答

1

回答如果android支持是NO。 但是,有这样做的适用。 Exmaple facebook messenger在新消息收入时执行此操作。 Facebook Messenger如何做到这一点。我认为这是由WindowManager完成的。

mWindowManager = (WindowManager)mContext.getSystemService("window"); 
mWindowManager.addView(v, mWindowParams); 
2

是的,这是可能的,但你需要使用许可TYPE_SYSTEM_ALERT这一点,并在Android 6日起,您还需要在运行时要求此权限。

下面是如何做到这一点微小的样本:

https://github.com/mollyIV/ChatHeads

和视频:

https://www.youtube.com/watch?v=CCLs1pEukxo

注意,你总是需要检查权限Android上给出6以上,特别是如果你的targetSdk是22或者更低。其原因是,应用程序可能会崩溃,如果该许可被撤销: https://code.google.com/p/android/issues/detail?id=196597

此外,为了捕捉什么样的屏幕显示,这也是可能的: How to record screen and take screenshots, using Android API?

而且,如果你想获得它作为文本,你可以做谷歌现在在水龙头做什么: http://developer.android.com/training/articles/assistant.html#implementing_your_own_assistant

+0

TYPE_SYSTEM_ALERT已从API 26中弃用。请改用[TYPE_APPLICATION_OVERLAY](https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_SYSTEM_ALERT) –