Кнопка Overriding Home для приложения замены Car Home
Я немного поработал над заменой стандартного приложения Car Home, и я совершенно не уверен, как переопределить кнопку "Домой", чтобы мое приложение возвращалось на передний план всякий раз, когда телефон подключен. Так работает Car Home, поэтому должен быть способ.
Кажется, что BroadcastReceivers не будет работать, потому что намерение, которое передается при каждом нажатии кнопки "Домой", по-прежнему вызывает запуск приложения домашнего экрана по умолчанию; Я не могу предотвратить это. Я могу переопределить кнопку "Домой" в моем приложении, но это не помогает, так как это должно работать, когда пользователь находится вне моего приложения. Car Home также не делает ничего странного, как устанавливает себя в качестве приложения для домашнего экрана по умолчанию во время работы (я проверил logcat, чтобы убедиться).
Я действительно бился головой об стену по этому поводу. У кого-нибудь есть идеи, или вы можете, по крайней мере, указать мне правильное направление?
4 ответа
Что ж, спустя много месяцев я наконец-то нашел ответ на этот вопрос. Ключом является элемент метаданных "android.dock_home", который находится здесь:
http://developer.android.com/reference/android/content/Intent.html
Используя это в вашем AndroidManifest.xml, вы можете временно сделать ваше док-приложение домашним. Для этого добавьте эту строку в файл AndroidManifest.xml внутри тегов Activity для активности док-приложения:
<meta-data android:name="android.dock_home" android:value="true" />
Если для этого параметра установлено значение true, пока ваш телефон подключен, кнопка "Домой" вернет вас в приложение для док-станции. После отсоединения кнопка "Домой" вернет вас в обычное домашнее приложение.
Вам нужно правильно настроить фильтр намерений в своем манифесте, чтобы приложение автоматически запускалось при подключении телефона. Обратитесь к http://developer.android.com/reference/android/content/Intent.html для получения информации.
К сожалению, в общедоступных API нет способа переопределить кнопку "Домой" без подтверждения пользователем.
Лучше всего было бы реализовать CATEGORY_HOME
Намерение. Это означает, что когда пользователь нажимает кнопку "Домой", ему предоставляется возможность запустить стандартный "Домой" или "Ваш" и сделать ваш "По умолчанию", если он этого хочет.
Когда ваше приложение было запущено, вы можете проверить, подключен ли телефон. Если телефон не подключен, вы можете открыть стандартный главный экран и закрыть приложение, прежде чем что-либо отобразится.
Я нашел способ заняться ключом 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"/>
Теперь ваше приложение является альтернативным приложением Launcher.
Используйте adb и отключите приложение запуска с помощью менеджера пакетов
вечера отключить com.android.launcher2.
Теперь нажатие клавиши Home будет оставаться на том же экране.