android开发如何屏蔽home键 在网上查的差不多就是两种方法 重写onAttachedTo 5

android开发如何屏蔽home键在网上查的差不多就是两种方法重写onAttachedToWindow,安卓4.0以上报错重写onKeyDown,没用,根本监听不到ho... android开发如何屏蔽home键

在网上查的差不多就是两种方法
重写onAttachedToWindow,安卓4.0以上报错

重写onKeyDown,没用,根本监听不到home键

求帮忙
展开
 我来答
千锋教育
2015-11-24 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

在2.3版本以下重写下面方法就能重写home键

public void onAttachedToWindow() {
      this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
      super.onAttachedToWindow();
}


在4.0以上的版本中需要利用以下方法屏蔽和重写Home键,代码如下:

public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; //需要自己定义标志
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码
    setContentView(R.layout.main);
}


再重写onKey事件即可。

@Override
public boolean onKeyDown( int keyCode, KeyEvent event) {    
if (keyCode == event. KEYCODE_HOME) {       
 return true;     
 }
 return super.onKeyDown(keyCode, event);
}

PS:

在AndroidMainfest.xml需要加权限:  
<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/><!-- 屏蔽HOME键需要的权限 -->

在配置文件中,在你使用了Notification的activity中加一个属性android: android:launchMode="singleInstance"

Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式