Я создаю приложение для экрана с блокировкой экрана, в этом я должен переопределить домашнюю кнопку, после того как я исследовал как в google, так и в stackoverflow, я получил результат, это сложно сделать. Здесь я упоминаю, что я сделал в своем приложении,Как обрабатывать проблему с домашней кнопкой в приложениях Launcher для Android
Создал службу с широковещательным приемником, чтобы показать экран блокировки, когда экран отключается. - отлично работает.
Для переопределения кнопок «Дом», «Меню», «Назад» и «Поиск» я использовал следующий код: Надеюсь, что мы можем переопределить кнопку «Дом», когда приложение становится только средством запуска, поэтому в моем манифесте. Xml я добавил этот код.
<intent-filter> <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.LAUNCHER" /> --> </intent-filter>
Кроме того, в моей деятельности я использовал этот код слишком
@Override
public void onAttachedToWindow() {
// TODO Auto-generated method stub
this.getWindow().setType(
WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG
| WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
До сих пор в моем примере приложения я успешно завершил выше. Теперь моя проблема:
Когда я разблокирую экран, перейдите в любое приложение, затем нажмите кнопку «Главная страница устройства», появится экран «Моя блокировка». я устал, чтобы отключить эту функцию, но я не знаю, как я могу точно это сделать, для этого я использовал код, как показано ниже,
/* This should come from a preference that let's the user select an activity that can handle the HOME intent */
String packageName = "com.android.launcher";
String packageClass = "com.android.launcher2.Launcher";
Intent home_intent = new Intent(Intent.ACTION_MAIN);
home_intent.addCategory(Intent.CATEGORY_HOME);
home_intent.setComponent(new ComponentName(packageName, packageClass));
home_intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
/* Here you should catch the exception when the launcher has been uninstalled, and let the user save themselves by opening the Market or an app list or something. Users sometimes use root apps to uninstall the system launcher, so your fake launcher is all that is left. Might as well give the poor user a hand. */
startActivity(home_intent);
код не поможет мне, моя точная потребность когда я разблокировать экран я необходимо показать главный экран по умолчанию, пока экран не погаснет. есть идея решить эту проблему? Заранее спасибо.
я инициализировать этот флаг в моей службе? – Aerrow
вы можете объяснить шаг за шагом способом – Aerrow
@Aerrow: Инициализировать его, когда вы получите его в режиме широковещания по методу 'onReceive()', а затем при запуске экрана блокировки отметьте флаг, ваша деятельность также вызывается при нажатии на кнопку чтобы проверка флага помогла вам –