Кнопка Overriding Home для приложения замены Car Home - PullRequest
5 голосов
/ 19 мая 2010

Я немного поработал над заменой стандартного приложения Car Home, и я совершенно ошеломлен тем, как переопределить кнопку «Домой», чтобы мое приложение возвращалось на передний план, когда телефон подключен. Так работает Car Home, поэтому должен быть способ.

Похоже, что BroadcastReceivers не будет работать, потому что намерение, которое передается при нажатии кнопки «Домой», все равно будет вызывать запуск приложения по умолчанию на главном экране; Я не могу предотвратить это. Я могу переопределить кнопку «Домой» в моем приложении, но это не помогает, так как это должно работать, когда пользователь находится вне моего приложения. Car Home также не делает ничего странного, например устанавливает себя в качестве приложения для домашнего экрана по умолчанию во время работы (я проверил logcat, чтобы убедиться).

Я действительно бился головой об стену по этому поводу. У кого-нибудь есть идеи, или вы можете, по крайней мере, указать мне правильное направление?

Ответы [ 4 ]

9 голосов
/ 25 августа 2010

Ну, через много месяцев я наконец нашел ответ на этот вопрос. Ключ - это элемент метаданных "android.dock_home", найденный здесь:

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

Используя это в вашем AndroidManifest.xml, вы можете временно сделать ваше док-приложение домашним. Для этого добавьте эту строку в файл AndroidManifest.xml внутри тегов Activity для активности док-приложения:

<meta-data android:name="android.dock_home" android:value="true" />

Если для этого параметра установлено значение true, пока телефон подключен, кнопка «Домой» вернет вас в приложение для подключения. После отсоединения кнопка «Домой» вернет вас в обычное домашнее приложение.

2 голосов
/ 19 мая 2010

Вам необходимо правильно настроить фильтр намерений в манифесте, чтобы приложение автоматически запускалось при подключении телефона. Обратитесь к http://developer.android.com/reference/android/content/Intent.html#CATEGORY_CAR_DOCK за информацией.

2 голосов
/ 19 мая 2010

К сожалению, в общедоступных API нет способа переопределить кнопку «Домой» без подтверждения пользователем.

Лучше всего было бы реализовать CATEGORY_HOME Намерение. Это означает, что когда пользователь нажимает кнопку «Домой», ему предоставляется возможность запустить стандартный «Домой» или «Ваш» и установить ваш «По умолчанию», если он этого хочет.

Когда ваше приложение было запущено, вы можете проверить, был ли телефон подключен. Если телефон не подключен, вы можете открыть стандартный главный экран и закрыть приложение, прежде чем что-либо отобразится.

0 голосов
/ 27 декабря 2010

Я нашел способ справиться с ключом 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 и отключите приложение запуска с помощью диспетчера пакетов

pm отключить com.android.launcher2.

Теперь нажатие клавиши Home будет оставаться на том же экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...