全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Android-设置APP开机自启和隐藏导航栏/状态栏方法

时间:2024-07-29 18:14

人气:

作者:admin

标签: OpenHarmony  RK3566 

导读:本文适用于触觉智能所有支持Android11系统的开发板设置APP开机自启和隐藏导航栏/状态栏。触觉智能的PurplePiOH鸿蒙开源主板,是华为Laval官方社区主荐的一款鸿蒙开发主板。该主板主要针...

本文适用于触觉智能所有支持Android11系统的开发板设置APP开机自启和隐藏导航栏/状态栏。触觉智能的Purple Pi OH鸿蒙开源主板,是华为Laval官方社区主荐的一款鸿蒙开发主板。

wKgZomanareAN4ARAAN6bAkt-Xs526.png

wKgZomanar-ATl3gAAScXGBaR98595.png

该主板主要针对学生党,极客,工程师,极大降低了开源鸿蒙开发者的入门门槛,具有以下几点优势:

支持开源鸿蒙/Linux /Andriod 11/麒麟,兼容树莓派 ;

四核A55,最高1.8G主频,Mali G52-2EE GPU ;

支持OpenGL/CL/Vulkan/1T NPU/8M ISP ;

支持TensorFlow/MXNet/PyTorch/ Caffe ;

支持1*千兆以太网、3*USB2.0、1*USB3.0、3*UART、2*SPI、2*I2C、28*GPIO、1*MIPI DSI、1*HDMI ;

支持OpenHarmony3.2/4.0/4.1版本,开放SDK源代码 ;

活跃的开发者社区, 更多牛人在线技术支持 ;

超小尺寸,极致性价比,只需249元 ;


一、APP自启


1.1 添加自启服务

修改文件:

frameworks\base\core\java\com\android\internal\app\ResolverActivity.java

--- a/frameworks/base/core/java/com/android/internal/app/ResolverActivity.java +++ b/frameworks/base/core/java/com/android/internal/app/ResolverActivity.java @@ -101,6 +101,10 @@ import java.util.List; import java.util.Objects; import java.util.Set; +import java.util.concurrent.Executor; +import java.util.function.Consumer; +import android.os.SystemProperties; +import android.app.role.RoleManager; /** * This activity is displayed when the system attempts to start an Intent for @@ -341,6 +345,18 @@ public class ResolverActivity extends Activity implements protected void onCreate(Bundle savedInstanceState, Intent intent, CharSequence title, int defaultTitleRes, Intent[] initialIntents, List rList, boolean supportsAlwaysUseOption) { + + //by Lyle,220923 + String LauncherPkg = SystemProperties.get("persist.sys.def_launherpag"); + if(LauncherPkg!=null/* && !isDefaultLauncher(this,LauncherPkg)*/){ + Log.v("defaultLauncher","-----found default launcher pkg:"+LauncherPkg); + setDefaltLauncher(this,LauncherPkg); + startDefaultLauncher(this,LauncherPkg); + finish(); + return; + } + //end + setTheme(appliedThemeResId()); super.onCreate(savedInstanceState); @@ -433,6 +449,47 @@ public class ResolverActivity extends Activity implements intent.getAction() + ":" + intent.getType() + ":" + (categories != null ? Arrays.toString(categories.toArray()) : "")); } + + + public void setDefaltLauncher(Context context, String packageName) {//by Lyle,220923 + String roleName = "android.app.role.HOME"; + boolean add = true; + int flags = 0; + UserHandle user = android.os.Process.myUserHandle(); + + RoleManager roleManager = context.getSystemService(RoleManager.class); + Executor executor = context.getMainExecutor(); + Consumer< Boolean > callback = successful -> { + if (successful) { + Log.v("defaultLauncher","set Defalt Launcher successful" ); + } else { + Log.v("defaultLauncher","set Defalt Launcher failed "); + } + }; + roleManager.addRoleHolderAsUser(roleName, packageName, flags, user, executor, callback); + } + + public void startDefaultLauncher(Context context, String packageName) { + Intent intent = new Intent(); + PackageManager pm = context.getPackageManager(); + intent = pm.getLaunchIntentForPackage(packageName); + if (intent != null) + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + try { + context.startActivity(intent); + } catch (Exception e) { + Log.v("defaultLauncher","start Default Launcher failed,not find package:"+packageName ); + } + } + + public boolean isDefaultLauncher(Context context,String launcherPkg){ + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.addCategory(Intent.CATEGORY_HOME); + ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); + String currentHomePackage = resolveInfo.activityInfo.packageName; + Log.v("defaultLauncher","-currentHomePackage:"+currentHomePackage); + return launcherPkg.equals(currentHomePackage); + } private boolean isIntentPicker() { return getClass().equals(ResolverActivity.class);


1.2 添加APP

将需要自启的APP放置
device/rockchip/rk356x/rk3566_r/preinstall_del/目录下

(没有preinstall_del目录就手动创建一个即可),并添加以下文件:

Android.mk

xxx.apk(APP)

preinstall.mk

Android.mk文件内容:

include $(call all-subdir-makefiles)
preinstall.mk文件内容:

PRODUCT_PACKAGES += neu

注意:

neu为APP名字,例如neu.apk。

该目录也是APK的预安装目录,如果有新的APK要预安装,可把APK拷贝到preinstall_del/目录下,并且把APK名字添加到preinstall.mk文件即可。

1.3 添加APP包名

修改文件:
device/rockchip/rk356x/rk3566_r/rk3566_r.mk
例如包名为:
com.mdptech.neuronappandroidhu

--- a/device/rockchip/rk356x/rk3566_r/rk3566_r.mk +++ b/device/rockchip/rk356x/rk3566_r/rk3566_r.mk @@ -46,4 +46,5 @@ PRODUCT_PROPERTY_OVERRIDES += persist.bt.power.down=true PRODUCT_PROPERTY_OVERRIDES += persist.sys.timezone=Asia/Shanghai PRODUCT_PROPERTY_OVERRIDES += ro.vendor.hdmirotationlock=true #PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=HDMI-A-1 PRODUCT_PROPERTY_OVERRIDES += vendor.hwc.device.primary=DSI +PRODUCT_PROPERTY_OVERRIDES += persist.sys.def_launherpag=com.mdptech.neuronappandroidhu


包名命令行方式查看:pm list package -3,修改后 make 编译源码即可。

二、修改导航栏/状态栏


2.1 导航栏

修改文件:

frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml

--- a/frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml +++ b/frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml @@ -22,6 +22,7 @@ xmlns:systemui="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" + android:visibility="gone" android:background="@drawable/system_bar_background"> + android:layout_height="match_parent" + android:visibility="gone"/>


2.2 状态栏

修改文件:

frameworks/base/packages/SystemUI/res/layout/status_bar.xml

--- a/frameworks/base/packages/SystemUI/res/layout/status_bar.xml +++ b/frameworks/base/packages/SystemUI/res/layout/status_bar.xml @@ -26,6 +26,7 @@ android:id="@+id/status_bar" android:orientation="vertical" android:focusable="false" + android:visibility="gone" android:descendantFocusability="afterDescendants" android:accessibilityPaneTitle="@string/status_bar" >


修改后重新make编译即可。

Purle Pi OH已过XTS兼容性认证

wKgaomana0GAWG3YAAHmBqy6zPY407.png
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信