工作笔记(1)--Android平板禁用虚拟按键

来源:互联网 发布:淘宝店铺装修轮播 编辑:程序博客网 时间:2024/05/17 03:24

        开发一个系统级应用,其中有一部分包含指纹注册,要求某个activity显示的时候,为了提升用户体验,需要禁用平板下方虚拟按键。网上搜索了很久,都没有确切的解决方法。思路是通过BroadcastReceiver广播收发机制,达到对虚拟按键的禁用效果。

下面是解决步骤:

        1,底层修改系统设置,提供广播禁用和可用action,如<action android:name="android.intent.action.DISABLE_CONTROL"/> <category android:name="android.intent.category.DEFAULT"/>和<action android:name="android.intent.action.ENABLE_CONTROL"/><category android:name="android.intent.category.DEFAULT"/>。

        2,在应用层,在需要禁用虚拟按键的activity中动态注册BroadcastReceiver以及发送广播。

              1)创建过滤器和BroadcastReceiver实例。

                    private IntentFilter intentFilter = new IntentFilter("android.intent.action.DISABLE_CONTROL");
                    private HideSystemKeyReceiver hideSystemKeyReceiver = new HideSystemKeyReceiver();

              2)在OnStart()方法里注册广播并发送广播。

                   @Override
                    protected void onStart() {
                            // TODO Auto-generated method stub
                            super.onStart();
                            registerReceiver(hideSystemKeyReceiver, intentFilter);
                            Intent intent = new Intent();
                            intent.setAction("android.intent.action.DISABLE_CONTROL");
                            sendBroadcast(intent);
                    }

              3)创建内部类BroadcastReceiver,重写OnReceive()。

                     private class HideSystemKeyReceiver extends BroadcastReceiver {
                            @Override
                            public void onReceive(Context context, Intent intent) {
                                    // TODO Auto-generated method stub
                            }
                      }

        几番调试,终于测试成功通过,达到预期效果!

0 0