0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Android-設置APP開機自啟和隱藏導航欄/狀態(tài)欄方法

觸覺智能 ? 2024-07-29 18:14 ? 次閱讀

本文適用于觸覺智能所有支持Android11系統(tǒng)的開發(fā)板設置APP開機自啟和隱藏導航欄/狀態(tài)欄。觸覺智能的Purple Pi OH鴻蒙開源主板,是華為Laval官方社區(qū)主薦的一款鴻蒙開發(fā)主板。

wKgZomanareAN4ARAAN6bAkt-Xs526.png

wKgZomanar-ATl3gAAScXGBaR98595.png

該主板主要針對學生黨,極客,工程師,極大降低了開源鴻蒙開發(fā)者的入門門檻,具有以下幾點優(yōu)勢:

支持開源鴻蒙/Linux /Andriod 11/麒麟,兼容樹莓派 ;

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

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

支持TensorFlow/MXNet/PyTorch/ Caffe ;

支持1*千兆以太網(wǎng)、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源代碼 ;

活躍的開發(fā)者社區(qū), 更多牛人在線技術支持 ;

超小尺寸,極致性價比,只需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目錄就手動創(chuàng)建一個即可),并添加以下文件:

Android.mk

xxx.apk(APP)

preinstall.mk

Android.mk文件內(nèi)容:

include $(call all-subdir-makefiles)
preinstall.mk文件內(nèi)容:

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 編譯源碼即可。

二、修改導航欄/狀態(tài)欄


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 狀態(tài)欄

修改文件:

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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式硬件
    +關注

    關注

    1

    文章

    929

    瀏覽量

    8355
  • 鴻蒙開發(fā)板

    關注

    1

    文章

    23

    瀏覽量

    4527
  • OpenHarmony
    +關注

    關注

    25

    文章

    3731

    瀏覽量

    16425
  • RK3566
    +關注

    關注

    0

    文章

    147

    瀏覽量

    4919
收藏 人收藏

    評論

    相關推薦

    LABVIEW調(diào)用EXCEL時不在狀態(tài)欄顯示?

    如何讓labview在調(diào)用excel時不在狀態(tài)欄顯示圖標,不是最小化狀態(tài)欄,是完全不要出現(xiàn)。最小化顯示狀態(tài)期望狀態(tài)
    發(fā)表于 12-25 11:22

    如何解決ubuntu的桌面沒有ubuntu狀態(tài)欄的問題?

    燒錄OK3399的OK3399-desktop-release/Image/目錄下自帶的upgrade.img后,系統(tǒng)可以正常啟動,桌面上的圖標正常,但啟動后沒有看到狀態(tài)欄,不知道是這個image專門這樣設計將狀態(tài)欄隱藏掉了,還
    發(fā)表于 12-30 07:26

    請問系統(tǒng)下方的導航如何隱藏?

    如題,根據(jù)需求APP需要全屏顯示,但是現(xiàn)在導航常駐在下面。如何能隱藏導航,在下方邊緣上滑時才
    發(fā)表于 12-31 07:52

    ubuntu的桌面沒有ubuntu的狀態(tài)欄是為什么?

    [td]你好,燒錄OK3399的OK3399-desktop-release/Image/目錄下自帶的upgrade.img后,系統(tǒng)可以正常啟動,桌面上的圖標正常,但啟動后沒有看到狀態(tài)欄,不知道是這個image專門這樣設計將狀態(tài)欄隱藏
    發(fā)表于 01-13 09:35

    怎樣去隱藏Android 8.1定制系統(tǒng)的導航狀態(tài)欄顯呢

    怎樣去隱藏Android 8.1定制系統(tǒng)的導航狀態(tài)欄顯呢?
    發(fā)表于 02-15 06:51

    請問RK3288如何添加隱藏狀態(tài)欄和虛擬按鍵的選項?

    請問RK3288如何添加隱藏狀態(tài)欄和虛擬按鍵的選項?
    發(fā)表于 03-03 07:53

    RK3288如何隱藏底部狀態(tài)欄截屏按鈕?

    RK3288如何隱藏底部狀態(tài)欄截屏按鈕?
    發(fā)表于 03-03 07:30

    如何去隱藏RK3399 Android7.1的導航

    如何去隱藏RK3399 Android7.1的導航呢?有何方法
    發(fā)表于 03-04 08:40

    怎樣在android系統(tǒng)設置中添加一個隱藏底部系統(tǒng)導航的功能呢

    怎樣在android系統(tǒng)設置中添加一個顯示選項呢?怎樣在android系統(tǒng)設置中添加一個隱藏底部系統(tǒng)導航
    發(fā)表于 03-10 07:53

    RK3399電池電量圖標在狀態(tài)欄的顯示和隱藏補丁

    想要把狀態(tài)欄上的電池圖標隱藏起來,把setImageDrawable(null); 注釋// else if (tileSpec.equals("battery"
    發(fā)表于 11-21 17:51

    創(chuàng)建與使用菜單、工具狀態(tài)欄

    大多數(shù)基于Windows的應用程序均使用菜單、工具狀態(tài)欄。其中,用戶通過菜單及工具實現(xiàn)各種期望地操作;使用狀態(tài)欄獲得系統(tǒng)以及軟件的狀態(tài)
    發(fā)表于 08-23 11:19 ?22次下載

    Android 仿谷歌側邊導航源碼

    Android 仿谷歌側邊導航源碼
    發(fā)表于 03-19 11:23 ?1次下載

    這款越獄插件可以把iPhone狀態(tài)欄隱藏起來

    盡管狀態(tài)欄非常重要,但是它并不需要一直顯示在 iPhone 屏幕的頂部。
    發(fā)表于 03-09 15:15 ?2407次閱讀

    谷歌正在測試隱藏 PWA 應用的狀態(tài)欄 或很快移除

    —— 在最新的體驗版本中,谷歌正在測試隱藏 PWA 應用的狀態(tài)欄。當你將鼠標指針懸停在網(wǎng)頁鏈接上時,原本可在窗口底部狀態(tài)欄顯示的完整鏈接信息已不復存在。 長久以來,狀態(tài)欄是幫助用戶在
    的頭像 發(fā)表于 01-18 17:24 ?1980次閱讀

    瑞芯微RK3566/RK3568 Android11下該如何默認屏蔽導航/狀態(tài)欄?看這篇文章就懂了

    本文介紹瑞芯微RK3566/RK3568在Android11系統(tǒng)默認屏蔽導航/狀態(tài)欄方法,觸覺智能的Purple Pi OH鴻蒙開發(fā)板演示
    的頭像 發(fā)表于 10-30 18:26 ?516次閱讀
    瑞芯微RK3566/RK3568 <b class='flag-5'>Android</b>11下該如何默認屏蔽<b class='flag-5'>導航</b><b class='flag-5'>欄</b>/<b class='flag-5'>狀態(tài)欄</b>?看這篇文章就懂了