我正在尝试编写一个Android应用程序,它通过http命令控制外部设备。
当应用程序从主屏幕上的图标正常启动时,它会进入完整的用户界面,允许用户与应用程序进行交互并控制设备。这一切都很好。
我现在想添加对Android意图的支持,以便其他程序(例如Tasker)可以向我的应用程序发出命令。但是,当应用程序收到意图时,我不希望显示UI。我希望一切都在后台运行,以执行intent中包含的命令。
我的应用程序使用的所有方法/数据等都在主要活动中,因此我希望在该活动中拥有完整的UI和意图处理。
在onCreate方法中,我因此检查应用程序是否已正常启动或通过意图启动。
如果正常启动,它会继续调用setContentView(R.layout.main)等来调出UI。
如果通过意图启动,我尝试调用setTheme(android.R.style.Theme_NoDisplay)尝试完全隐藏UI,但我仍然会在顶部显示标题栏的黑屏。
有没有办法抑制活动的用户界面,但只有当它被意图启动时才会生效?
感激不尽的任何帮助。我可以看到解决隐藏UI的其他问题,但他们都建议更改Android Manifest中的设置,而我想要做的是取决于应用程序的启动方式。
由于
安德鲁
答案 0 :(得分:1)
有没有办法抑制活动的用户界面,但只有当它被意图启动时才会生效?
创建主活动的子类,在清单中设置其无UI主题。为该活动提供第三方应用使用的唯一<intent-filter>
。通过这种方式,您的逻辑可以保留在一个类中,但是您可以为第三方应用程序应用无UI主题。
呃,如果你等到Java代码做出这个决定,那你就太迟了。