您的位置:首页 > 移动开发 > Android开发

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

2014-11-04 17:32 507 查看
        开发一个系统级应用,其中有一部分包含指纹注册,要求某个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

                            }

                      }

        几番调试,终于测试成功通过,达到预期效果!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息