需求:桌面应用,禁用HOME;
做个记录,试过很多方式都不行。
onAttachedToWindow,onKeyDown 都是低版本有效,高版本已经淘汰。
如果是root机型,设置为桌面应用,可禁止使用HOME;
使用广播的方式来监听HOME:创建类 HomeReceiver 继承 BroadcastReceiver ;
/**
* Created by: PeaceJay
* Created date: 2021/3/10
* Description:
*/
public class HomeReceiver extends BroadcastReceiver {
final String SYSTEM_REASON_KEY = "reason";
final String SYSTEM_REASON_HOME_KEY = "homekey";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
String reason = intent.getStringExtra(SYSTEM_REASON_KEY);
if (reason != null) {
if (reason.equals(SYSTEM_REASON_HOME_KEY)) {
Toast.show("Home键被监听");
}
}
}
}
}
注册广播
//创建广播
HomeReceiver homeReceiver = new HomeReceiver();
//动态注册广播
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
//启动广播
registerReceiver(homeReceiver, intentFilter);