【发布时间】:2017-04-24 21:39:04
【问题描述】:
我看过关于通过java隐藏android应用程序导航栏的文章和文章。但是,我想知道的是如何通过纯 android c++ 本机活动应用程序为全屏应用程序(游戏)删除导航栏(根本没有 JAVA!)。 android manifest 中的全屏可以隐藏顶部栏,但导航栏保持可见。
这是我要删除的Navigation Bar。
我没有运气搜索过书籍,没有关于本地活动的实际文档,谷歌搜索没有任何结果。一些头文件中只有 cmets,它们是很小的 cmets,甚至没有帮助。看来纯 c++ android 应用程序的话题是一个黑点,但市场上出现的很多游戏都是用 c++ 编写的。
我也试过设置:
AConfiguration_setNavHidden(m_app->config, ACONFIGURATION_NAVHIDDEN_YES);
但它似乎什么都不做,实际上所有的 AConfiguratin_setXXX 似乎什么都不做。也许我在错误的地方调用它?创建窗口后,我在 APP_CMD_INIT_WINDOW 期间一直在调用它。我应该在哪里调用这个函数?
【问题讨论】:
-
AFAIK,如果不调用 Java API,您将无法做到这一点。您可能必须使用
GetMethodID和 related functions 从纯 C++ 代码通过 JNI 调用 java 方法。 AConfiguration 可能不是您所需要的——基于对文档的快速浏览,它用于编辑 JavaConfiguration对象。您需要为您的Activity获取jobject,获取JNIEnv并使用它来调用您的任务所需的Java 方法。 -
我今天刚去面试,提到了这个问题,显然他们也有同样的问题,但是用纯c++解决了。在我离开之前我忘了问他们是怎么做到的,但听起来这是可能的。如果我找不到答案,我最后的办法是像正常人一样部分使用 Java。不过感谢您的意见!
-
使用 C++ 调用带有 JNI 的 Java 方法 是“纯 C++”,因为您没有编写任何 Java 代码 — 只是使用 JVM C++ API 调用 Java 方法。
-
是的,我知道“纯 c++”仍在使用 java 调用。我只需要隐藏导航的秘密成分。我知道有一个,必须有!我部分使用 java 作为最后手段的意思是隐藏 java 上的导航。
标签: android c++ native native-activity