覆盖Home Key长按类别.HOME活动

我刚刚创build了自己的“家”,以取代股票的Android或Sense。

一切工作正常,我得到我想要的一切。 我唯一的问题是用我自己的发射器replace为长按Home键(通常显示你最近发起的6个活动)。

我用下面的代码成功replace了长按菜单button:

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { //Log.i(TAG,"Keycode: "+keyCode); if (keyCode == KeyEvent.KEYCODE_MENU) { // this tells the framework to start tracking for // a long press and eventual key up. it will only // do so if this is the first down (not a repeat). event.startTracking(); return true; } (...) 

而这部分是为了长按:

  @Override public boolean onKeyLongPress(int keyCode, KeyEvent event) { //Log.i(TAG,"LONG"+keyCode); Toast.makeText(Launcher.this,"LONG "+keyCode, Toast.LENGTH_SHORT).show(); if (keyCode == KeyEvent.KEYCODE_MENU) { (...) 

但问题是,我无法用KeyEvent.KEYCODE_HOMEreplaceKeyEvent.KEYCODE_MENU

是在代码中locking的东西,以避免用户使用家庭长按?

非常感谢你给我的所有信息。

Solutions Collecting From Web of "覆盖Home Key长按类别.HOME活动"

我曾经读过的所有东西都说这是不可能完成的……这里是Android初学者的post,我问了一个非常类似的问题:

http://groups.google.com/group/android-beginners/browse_thread/thread/d8cdcd1c52d79ef1/0f4b184da6f248a9?lnk=gst&q=home+key#0f4b184da6f248a9

不过,我最近遇到了一个成功的应用程序,可以让你通过双击主键来启动它,所以必须有一些可以做的事情。 我研究了一下这种方法,但无法使其工作。 现在,我知道别人想通了,我要再试一次….

编辑虽然重写长按主页button不能完成,我已经find了一种方法来成功实现双按主页button。 总体思路如下:

  1. 让您的应用程序充当家庭替代应用程序(查看SDK示例中的示例家庭应用程序)
  2. 允许在您的应用程序中指定要使用的家庭应用程序(向用户显示家庭replace应用程序的列表非常简单)
  3. 在首次按下主页button时启动一个计时器。
  4. 如果计时器超时,则启动家庭应用程序
  5. 如果用户在计时器停止之前再次按下主键,请启动您的应用程序

从本质上讲,家庭更换活动只是启动用户指定的真正的家庭应用程序或启动您的应用程序…它从不显示自己的用户界面。

我发现这个工作得很好,而且实际上有一个在Android Market上发布的应用程序。 如果你想看到它的行动,它被称为“快速启动”和出版商名称被列为“MagouyaWare”

希望这可以帮助!

您可以注册长时间HOMEbutton的假冒活动

通过添加到清单:

 <intent-filter> ... <action android:name="android.intent.action.ASSIST" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> 

我find了解决HOME键的方法。 为你的应用程序设置清单

  <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.MONKEY"/> Now ur application is an alternate Launcher application. 

使用adb,并使用软件包pipe理器禁用启动程序

下午禁用com.android.launcher2。

现在Home键按下将停留在同一个屏幕上。

其实没有太多的代码,我会尽力解释它,如果有帮助。 对于清单文件中的andriod应用程序,我们通常将意图filter保留为: –

Instaed我们应该使意图filter看起来像: –

这与LAuncher的意图filter是一样的。

现在我们有一个备用的launchjer应用程序。 为了使它成为唯一的启动器应用程序,我们必须unistall /禁用现有的启动器应用程序(Android中的默认启动器)。

为此,我们需要连接设备/仿真器并启动adb(androiddebugging桥)。 然后按照下面的步骤:

adbshell

下午列表软件包/ /这将列出所有安装的软件包

pm禁用com.android.launcher / /这将禁用启动程序。

重启。