Как я разрабатываю приложение для детей, мне нужно отключить кнопку дома, чтобы они не закрывали приложение на классе. Кто-нибудь знает, как отключить его в android 4.X? (кнопка дома - настоящая, но не виртуальная кнопка на экране)Отключить кнопку дома в android 4.x
ответ
Вы не можете.
Согласно Android documentation кнопка «домой» не доставляется в приложения и не обрабатывается каркасом.
Вы можете сделать это в укоренеными устройствами.
Это то, что я сделал для этого:
package com.juanjovega.examples;
import android.app.Activity;
import android.os.Build;
import android.util.Log;
public class KioskActivity extends Activity {
@Override
public void onResume() {
super.onResume();
// Work around an Android 2.3 bug that sometimes causes us to become
// invisible after turning the display off and on with the power button.
setVisible(false);
setVisible(true);
}
public static void setFullScreen(boolean fullscreen) {
Process proc = null;
String ProcID = "79"; // HONEYCOMB AND OLDER
if (Build.VERSION.SDK_INT >= 14) {
ProcID = "42"; // ICS AND NEWER
}
try {
if (fullscreen) {
proc = Runtime.getRuntime().exec("su -c service call activity " + ProcID + " s16 com.android.systemui");
Log.d("kiosk", "Fullscreen mode ON");
} else {
Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");
Log.d("kiosk", "Fullscreen mode OFF");
}
} catch (Exception ex) {
}
try {
proc.waitFor();
} catch (Exception ex) {
}
}
// Override the default Back key action so that we don't lose control.
@Override
public void onBackPressed() {
Log.d("kiosk", "onBackPressed");
}
public void clearHomeConfig() {
Log.d("kiosk", "clearHomeConfig");
getPackageManager().clearPackagePreferredActivities(getPackageName());
}
public void exitApp() {
// Restore UI.
setFullScreen(false);
// Clear home config.
getPackageManager().clearPackagePreferredActivities(getPackageName());
// Exit
System.exit(0);
}
}
сделал это произведение ?. – CraZyDroiD
У меня есть эта работа (в единстве3D, через плагин), но я не тестировал ее на многих устройствах, а только на планшете нексуса. Устройство должно быть укоренено, в противном случае вы не сможете работать с сервисами start/stop, и это делает приложение полноэкранным, а не только отключает домашнюю кнопку. Это был лучший вариант, который я нашел. –
сделали вы проверили http://stackoverflow.com/questions/17549478/how-to-disable-home-and-other-system-buttons-in -android – AADProgramming
http://stackoverflow.com/questions/2068084/kiosk-mode-in-android –
http://stackoverflow.com/questions/11394843/how-can-i-disable-android-4-0-home -button – duggu