覆盖汽车之家更换应用程序的主页按钮

Big*_*osh 5 android dock android-homebutton

我一直在努力更换股票的汽车之家应用程序,我完全不知道如何覆盖主页按钮,这样我的应用程序将在手机停靠时返回到前台.这是Car Home的工作方式,所以必须有办法.

似乎BroadcastReceivers不起作用,因为每当按下Home按钮时广播的意图仍然会导致默认的主屏幕应用程序启动; 我无法阻止它.我可以从我的应用程序中覆盖主页按钮,但这对我没有好处,因为当用户在我的应用程序之外时,这需要工作.Car Home也没有做任何奇怪的事情,比如在运行时将自己设置为默认的主屏幕应用程序(我检查了logcat以确保).

在这方面,我一直在撞墙.有没有人有任何想法,或者你能否至少指出我正确的方向?

Big*_*osh 9

好吧,经过好几个月,我终于找到了这个问题的答案.关键是"android.dock_home"元数据元素,可在此处找到:

http://developer.android.com/reference/android/content/Intent.html#METADATA_DOCK_HOME

通过在AndroidManifest.xml中使用它,可以使dock应用程序暂时成为home应用程序.为此,请将此行添加到Dock app活动的Activity标记内的AndroidManifest.xml中:

<meta-data android:name="android.dock_home" android:value="true" />
Run Code Online (Sandbox Code Playgroud)

如果该值设置为true,只要您的手机停靠,主页按钮就会返回停靠应用.取消停靠后,主页按钮将带您回到普通的家庭应用程序.

  • 如果设备是pre-Froyo:`Intent dockIntent = new Intent(); dockIntent.setAction(Intent.ACTION_DOCK_EVENT); dockIntent.putExtra(Intent.EXTRA_DOCK_STATE,Intent.EXTRA_DOCK_STATE_CAR); sendStickyBroadcast(dockIntent);`如果是Froyo或更高版本:`UiModeManager manager =(UiModeManager)getSystemService(Context.UI_MODE_SERVICE); manager.enableCarMode(0);` (2认同)