项目开发需要, 做一个锁屏Activity. 需要屏蔽Home键. 网上搜索各种方法要么就过时, 要么就无效, 无意中看到这种方式可以屏蔽Home键:
利用反射机制, 调用 statusBarManager的disable方法.
public static void setStatusBarDisable(Context context, int disable_status) {//调用statusBar的disable方法
Log.e(TAG, "StatubarManager.setStatusBarDisable.disable_status : "+disable_status);
Object service = context.getSystemService("statusbar");
try {
Class<?> statusBarManager = Class.forName
("android.app.StatusBarManager");
Method expand = statusBarManager.getMethod("disable", int.class);
expand.invoke(service, disable_status);
} catch (Exception e) {
unBanStatusBar(context);
e.printStackTrace();
}
}
在锁屏Activity的onCreate调用:
StatubarManager.setStatusBarDisable(LockScreenActivity.this ,
StatubarManager.STATUS_BAR_DISABLE_HOME);
参考文章: https://www.jianshu.com/p/b0b0c2eb3e85