Android Launcher 自定义一个虚拟按键实现返回主页和打开全部应用两个功能

Posted 王睿丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Launcher 自定义一个虚拟按键实现返回主页和打开全部应用两个功能相关的知识,希望对你有一定的参考价值。

关于 自定义虚拟按键如何显示在桌面上,请参考我的博客:
Launcher 在底部导航栏添加一个“☰”按钮,点击弹出全部应用

注册广播
packages / apps/Launcher3/src/com/android/launcher3/Launcher.java

 @Override
    protected void onCreate(Bundle savedInstanceState) 
        registerReceiver(myReceiver, new IntentFilter("com.xxx.allApp"));
  

取消广播

 @Override
    public void onDestroy() 
        unregisterReceiver(myReceiver);
 

创建广播接收器, 接收自定义虚拟按键点击的通知,这里面的实现逻辑很简单,分为两部分:

  1. 如果当前界面打开了全部应用界面或打开了其他应用,则下一次点击按键时,直接返回桌面。
    if (getStateManager().getState().toString().equals("AllApps") || (!cn.getPackageName().equals("com.android.launcher3")))

  2. 如果当前界面是桌面,则下次点击时打开全部应用界面
    getStateManager().goToState(ALL_APPS);

    private final BroadcastReceiver myReceiver = new BroadcastReceiver() 
        @Override
        public void onReceive(Context context, Intent intent) 
            android.app.ActivityManager am = (android.app.ActivityManager) getSystemService(ACTIVITY_SERVICE);
            android.content.ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
            if (getStateManager().getState().toString().equals("AllApps") || (!cn.getPackageName().equals("com.android.launcher3")))
                intent= new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_HOME);
                startActivity(intent);
            else getStateManager().goToState(ALL_APPS);
        
    ;

Launcher 开发系列:
Launcher 在底部导航栏添加一个“☰”按钮,点击弹出全部应用
Launcher 修改底部导航虚拟按键的位置
Launcher 隐藏和开启底部虚拟按键(动态更改)
Launcher 去掉全部应用界面的搜索框
Launcher 点击鼠标右键时,显示菜单栏
Launcher 自定义一个虚拟按键实现返回主页和打开全部应用两个功能

以上是关于Android Launcher 自定义一个虚拟按键实现返回主页和打开全部应用两个功能的主要内容,如果未能解决你的问题,请参考以下文章

android开发者:修改android图标ic_launcher,为自定义的.

Android的Launcher启动流程 “Launcher部分启动流程”

自定义工具栏不在那里

Android Launcher 隐藏和开启底部虚拟按键(动态更改)

pojavlauncher怎么设置java参数

pojavlauncher怎么设置java参数