我们正在分发电话供人们在参观我们的展览时使用,在那些手机中我们正在运行一个j2me应用程序。人们将在走动时自己使用该设备,并在离开时返回。
虽然我们的应用程序专门为以前从未使用过的人而易于使用和理解,但手机操作系统不是......(目前使用Brew MP的HTC)
人们不小心按下了前面的按钮,被扔回菜单,或者屏幕锁定,他们不知道如何回来。
我能想到的唯一解决方案是创建一个我们可以在手机中使用的自定义Android版本。
我想改变的是禁用所有硬件按钮和特殊滑动。因此,人们在推出应用时基本上会被锁定。
想到几个问题:
我过于复杂吗?也许常规应用程序可以覆盖按钮的功能?
答案 0 :(得分:0)
看一下下面的链接,了解如何下载和编译android源代码,就像在设备上获取它一样,我还没有那么努力......
http://source.android.com/source/download.html
我的猜测是你必须破解你的设备才能将自己的固件/ ROM放在上面。在freenode上的#android-root irc上询问有关这方面的建议。我听说有人把自己的手机放在手机上,这是可能的。
在我个人看来,我认为你非常复杂的事情。您可以覆盖后退按钮的默认操作,显然是菜单按钮。不太确定主页按钮。
也许只是去寻找一些超级简单的东西,然后通过'如何愚蠢地退出应用程序,如何退回应用程序'给手机发送/附加一张卡片?那,或者让每个离开应用程序的人都有点耳光,希望他们不要再这样做了;)
答案 1 :(得分:0)
根据您的要求,我不确定您是否需要自定义Android版本。如果你想控制应用程序不响应按钮,应该有其他方式..(我真的相信Android会有这种灵活性)
尝试使用此论坛帖子开始。 Android - Is It possible to disable the click of home button
答案 2 :(得分:0)
除非这是一部Symbian手机,在这种情况下你无法阻止红色键和菜单键,你应该能够响应所有的软键,以防止它回归到J2ME,软键最有可能被映射到-6和-7
下面是一些示例代码可以帮助你入门,有些手机显然有些三星有第三个软键而且getGameAction可以抛出异常(索尼K700当然可以)所以应该尝试抓住 public static boolean isKnownKey(Canvas canvas, int keyCode)
{
return (keyCode >= KEY_NUM0 && keyCode <= KEY_NUM9) ||
keyCode == KEY_POUND || keyCode == KEY_STAR ||
canvas.getGameAction(keyCode) != 0;
}
public static int KEY_SOFT_LEFT = -6;
protected void keyPressed(int keyCode)
{
if (!isKnownKey(this, keyCode))
{
if (keyCode == KEY_SOFT_LEFT)
leftSoftCommand();
else
rightSoftCommand();
}
else
super.keyPressed(keyCode);
}
答案 3 :(得分:0)
如果我理解正确,您正在尝试运行您的应用并让用户只能访问该应用,您可以卸载启动器