如何禁用返回、主页、多任务物理按钮?
How to disable back,home,multitask physical buttons?
实际上我正在开发一个应用程序,应该在安装的设备上打开这个应用程序,这样我就可以阻止/禁用返回、主页、多任务的物理按钮。
我已经阅读了一些关于如何执行此操作的文章,但仍然无法了解如何在我的应用程序中实现它。
我要禁用的按钮如下,您可以在照片上看到
对于 back button
你可以 Override
onBackPressed
方法如下:-
@Override
public void onBackPressed() {
// do what you want
}
对于Home Button
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
对于禁用 recent app
按钮:-
步骤 1
将此权限添加到 manifest.xml
文件
<uses-permission android:name="android.permission.REORDER_TASKS" />
步骤 2
将此代码放在您想要 block/disable 最近使用的应用程序按钮的任何 Activity 中
@Override
protected void onPause() {
super.onPause();
ActivityManager activityManager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.moveTaskToFront(getTaskId(), 0);
}
//下面的代码放在onStart()方法
@Override
protected void onStart() {
super.onStart();
// start lock task mode if it's not already active
ActivityManager am = (ActivityManager) getSystemService(
Context.ACTIVITY_SERVICE);
// ActivityManager.getLockTaskModeState api is not available in pre-M.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
if (!am.isInLockTaskMode()) {
startLockTask();
}
} else {
if (am.getLockTaskModeState() ==
ActivityManager.LOCK_TASK_MODE_NONE) {
startLockTask();
}
}
}
实际上我正在开发一个应用程序,应该在安装的设备上打开这个应用程序,这样我就可以阻止/禁用返回、主页、多任务的物理按钮。
我已经阅读了一些关于如何执行此操作的文章,但仍然无法了解如何在我的应用程序中实现它。
我要禁用的按钮如下,您可以在照片上看到
对于 back button
你可以 Override
onBackPressed
方法如下:-
@Override
public void onBackPressed() {
// do what you want
}
对于Home Button
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
对于禁用 recent app
按钮:-
步骤 1
将此权限添加到 manifest.xml
文件
<uses-permission android:name="android.permission.REORDER_TASKS" />
步骤 2
将此代码放在您想要 block/disable 最近使用的应用程序按钮的任何 Activity 中
@Override
protected void onPause() {
super.onPause();
ActivityManager activityManager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
activityManager.moveTaskToFront(getTaskId(), 0);
}
//下面的代码放在onStart()方法
@Override
protected void onStart() {
super.onStart();
// start lock task mode if it's not already active
ActivityManager am = (ActivityManager) getSystemService(
Context.ACTIVITY_SERVICE);
// ActivityManager.getLockTaskModeState api is not available in pre-M.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
if (!am.isInLockTaskMode()) {
startLockTask();
}
} else {
if (am.getLockTaskModeState() ==
ActivityManager.LOCK_TASK_MODE_NONE) {
startLockTask();
}
}
}