国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

搭載基于RK3229的Android5.1修改開機(jī)默認(rèn)桌面Launcher

這篇具有很好參考價(jià)值的文章主要介紹了搭載基于RK3229的Android5.1修改開機(jī)默認(rèn)桌面Launcher。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、找到ActivityManagerService.java

在..\rk3229_5.1_box\frameworks\base\services\core\java\com\android\server\am目錄找到ActivityManagerService.java文件。在文件里找到startHomeActivityLocked函數(shù)里的setDefaultLauncher。

 boolean startHomeActivityLocked(int userId, String reason) {

        setDefaultLauncher(userId);

        if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
                && mTopAction == null) {
            // We are running in factory test mode, but unable to find
            // the factory test app, so just sit around displaying the
            // error message and don't try to start anything.
            return false;
        }
        Intent intent = getHomeIntent();
        ActivityInfo aInfo =
            resolveActivityInfo(intent, STOCK_PM_FLAGS, userId);
        if (aInfo != null) {
            intent.setComponent(new ComponentName(
                    aInfo.applicationInfo.packageName, aInfo.name));
            // Don't do this if the home app is currently being
            // instrumented.
            aInfo = new ActivityInfo(aInfo);
            aInfo.applicationInfo = getAppInfoForUser(aInfo.applicationInfo, userId);
            ProcessRecord app = getProcessRecordLocked(aInfo.processName,
                    aInfo.applicationInfo.uid, true);
            if (app == null || app.instrumentationClass == null) {
                intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK);
                mStackSupervisor.startHomeActivity(intent, aInfo, reason);
            }
        }

        return true;
    }

2、設(shè)置開機(jī)默認(rèn)桌面包名

在setDefaultLauncher設(shè)置開機(jī)默認(rèn)桌面launch的包名。我開發(fā)的固件,所要啟動(dòng)的包名如下:

?? ??? ? String ?packageName = SystemProperties.get("persist.sys.yz.defpackage", "com.zhai.ads");
? ? ? ? ?String ?className = SystemProperties.get("persist.sys.yz.defclass", "com.zhai.touchhome.Loading");

    private void setDefaultLauncher(int userId)
    {
        // get default component
        //String  packageName = SystemProperties.get("persist.sys.yz.defpackage", "com.zhaisoft.app.hesiling");
       // String  className = SystemProperties.get("persist.sys.yz.defclass", "com.zhaisoft.app.hesiling.activity.MainActivity");
		
		 String  packageName = SystemProperties.get("persist.sys.yz.defpackage", "com.zhai.ads");
         String  className = SystemProperties.get("persist.sys.yz.defclass", "com.zhai.touchhome.Loading");
		
		
        Slog.i(TAG, "default packageName = " + packageName + ", default className = " + className);
        if(!packageName.equals("no") && !className.equals("no")){
            boolean firstLaunch = SystemProperties.getBoolean("persist.sys.sw.firstLaunch", true);
            Slog.d(TAG, "firstLaunch = " + firstLaunch);
            if(firstLaunch){
                mFirstLaunch = true;
                // do this only for the first boot
                SystemProperties.set("persist.sys.sw.firstLaunch", "false");
            }
            Slog.d(TAG, "mFirstLaunch = " + mFirstLaunch);
           // if(mFirstLaunch){
                IPackageManager pm = ActivityThread.getPackageManager();

                //clear the current preferred launcher
                ArrayList<IntentFilter> intentList = new ArrayList<IntentFilter>();
                ArrayList<ComponentName> cnList = new ArrayList<ComponentName>();
                mContext.getPackageManager().getPreferredActivities(intentList, cnList, null);
                IntentFilter dhIF;
                for(int i = 0; i < cnList.size(); i++)
                {
                    dhIF = intentList.get(i);
                    if(dhIF.hasAction(Intent.ACTION_MAIN) &&
                            dhIF.hasCategory(Intent.CATEGORY_HOME))
                    {
                        mContext.getPackageManager().clearPackagePreferredActivities(cnList.get(i).getPackageName());
                    }
                }

                // get all Launcher activities
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_HOME);
                List<ResolveInfo> list = new ArrayList<ResolveInfo>();
                try
                {
                    list = pm.queryIntentActivities(intent,
                            intent.resolveTypeIfNeeded(mContext.getContentResolver()),
                            PackageManager.MATCH_DEFAULT_ONLY, userId);
                }catch (RemoteException e) {
                    throw new RuntimeException("Package manager has died", e);
                }
                // get all components and the best match
                IntentFilter filter = new IntentFilter();
                filter.addAction(Intent.ACTION_MAIN);
                filter.addCategory(Intent.CATEGORY_HOME);
                filter.addCategory(Intent.CATEGORY_DEFAULT);
                final int N = list.size();
                ComponentName[] set = new ComponentName[N];
                int bestMatch = 0;
                for (int i = 0; i < N; i++)
                {
                    ResolveInfo r = list.get(i);
                    set[i] = new ComponentName(r.activityInfo.packageName,
                            r.activityInfo.name);
                    if (r.match > bestMatch) bestMatch = r.match;
                }
                // add the default launcher as the preferred launcher
                ComponentName launcher = new ComponentName(packageName, className);
                try
                {
                    pm.addPreferredActivity(filter, bestMatch, set, launcher, userId);
                } catch (RemoteException e) {
                    throw new RuntimeException("Package manager has died", e);
                }
            //}
        }
    }

3、尋找HomeSettings.java

在..\rk3229_5.1_box\packages\apps\Settings\src\com\android\settings里尋找HomeSettings.java文件。在makeCurrentHome里第二次設(shè)置自己需要的桌面。主要是客戶有兩個(gè)桌面,需要頻繁切換。

    void makeCurrentHome(HomeAppPreference newHome) {
        if (mCurrentHome != null) {
            mCurrentHome.setChecked(false);
        }
        newHome.setChecked(true);
        mCurrentHome = newHome;

        mPm.replacePreferredActivity(mHomeFilter, IntentFilter.MATCH_CATEGORY_EMPTY,
                mHomeComponentSet, newHome.activityName);
	//huangxing add 
		System.out.println("huangxing----activityName== " + newHome.activityName);
		//ComponentName chatActivity =new ComponentName();
		
		String launcherInfo  = newHome.activityName.toString();
		System.out.println("huangxing----launcherInfo== " + launcherInfo);
		if(launcherInfo.indexOf("com.android.launcher3") != -1){
			SystemProperties.set("persist.sys.yz.defpackage", "com.android.launcher3");
			SystemProperties.set("persist.sys.yz.defclass", "com.android.launcher3.Launcher");
			System.out.println("huangxing---launcher3-----");
		}else if(launcherInfo.indexOf("com.zhai.ads") != -1){
			SystemProperties.set("persist.sys.yz.defpackage", "com.zhai.ads");
			SystemProperties.set("persist.sys.yz.defclass", "com.zhai.touchhome.Loading");
			System.out.println("huangxing---com.zhai.ads-----");
		}else {
			//wjz add
			System.out.println("huangxing---heshiling launcher-----");
			SystemProperties.set("persist.sys.yz.defpackage", "com.zhaisoft.app.hesiling");
			SystemProperties.set("persist.sys.yz.defclass", "com.zhaisoft.app.hesiling.activity.MainActivity");
			//SystemProperties.set("persist.sys.yz.defpackage", "com.zhai.ads");
			//SystemProperties.set("persist.sys.yz.defclass", "com.zhai.touchhome.Loading");
		}
        getActivity().setResult(Activity.RESULT_OK);
		
	
    }

4、在System.prop的文件里,設(shè)置默認(rèn)launcher

為了客戶定制更加靈活,后來在System.prop里設(shè)置了默認(rèn)launcher的參數(shù)。通過腳本配置,進(jìn)行一站式編譯。

搭載基于RK3229的Android5.1修改開機(jī)默認(rèn)桌面Launcher,andriod,# RK3229固件定制,安卓文章來源地址http://www.zghlxwxcb.cn/news/detail-735515.html

到了這里,關(guān)于搭載基于RK3229的Android5.1修改開機(jī)默認(rèn)桌面Launcher的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android11 默認(rèn)開機(jī)后臺(tái)記錄logcat日志

    軟件平臺(tái):Android11 硬件平臺(tái):QCS6125 ? ? 需求:android啟動(dòng)后,默認(rèn)后臺(tái)記錄logcat日志,并且設(shè)置每個(gè)文件大小為2M,最多記錄30個(gè)文件,并且放置的data目錄需要開放給app側(cè)讀取權(quán)限。 改動(dòng)如下: device目錄添加app側(cè)讀取的selinux權(quán)限: system目錄相關(guān)添加: Mark一下,編譯驗(yàn)證調(diào)

    2024年02月15日
    瀏覽(24)
  • firefly開發(fā)板RK3588非默認(rèn)外設(shè)使能(串口uart、IIC、adc等)設(shè)備樹修改詳細(xì)步驟

    firefly開發(fā)板RK3588非默認(rèn)外設(shè)使能(串口uart、IIC、adc等)設(shè)備樹修改詳細(xì)步驟

    sdk獲取和內(nèi)核編譯,參考上一篇博文:rk3588內(nèi)核裁剪 文件1: 此文件是針對(duì)firefly的板級(jí)設(shè)備樹文件。 文件2: 此文件是關(guān)于io復(fù)用的設(shè)備樹文件。 文件3: 此文件是所有具有復(fù)用功能的gpio,例如:#define RK_PA4 4 代表的是GPIO_PA_4即A組的GPIO4。 官方的內(nèi)核和設(shè)備樹,默認(rèn)打開了串

    2024年02月09日
    瀏覽(101)
  • rk3568 安卓11 修改android id

    frameworksbasepackagesSettingsProvidersrccomandroidproviderssettingsSettingsProvider.java 系統(tǒng)應(yīng)用獲取的android id 直接寫死 上層普通應(yīng)用 android id跟著sn變化 android id跟著IMEI變化

    2024年04月28日
    瀏覽(21)
  • Android修改默認(rèn)gradle路徑

    Android修改默認(rèn)gradle路徑

    Android Studio每次新建項(xiàng)目,都會(huì)默認(rèn)在C盤生成并下載gradle相關(guān)文件,由于C盤空間有限,沒多久C盤就飄紅了,于是就需要把gradle相關(guān)文件轉(zhuǎn)移到其他盤 具體路徑一般是:C:Users用戶 .gradle 復(fù)制C:Users用戶.gradle文件夾下內(nèi)容,到D:AndroidGradle 打開計(jì)算機(jī)系統(tǒng)屬性→高級(jí)系統(tǒng)設(shè)

    2024年02月10日
    瀏覽(19)
  • Android Studio 默認(rèn)配置路徑修改

    Android Studio 默認(rèn)配置路徑修改

    Android Studio 安裝完成后,默認(rèn)會(huì)在 C 盤對(duì)應(yīng)用戶目錄下生成存儲(chǔ)和緩存目錄文件,我們需要遷移文件并配置索引路徑,使 AS 到新目錄讀取我們的配置 .android :我們?cè)?AVD Manager 中配置的 AVD 就會(huì)存儲(chǔ)在這里,隨便一個(gè) AVD 動(dòng)輒就 10 G 左右,所以只要不是「?jìng)}鼠盤」,一定要修改

    2023年04月14日
    瀏覽(26)
  • Android11.0 修改系統(tǒng)默認(rèn)顯示大小

    系統(tǒng)設(shè)置中的顯示大小調(diào)整的就是屏幕密度,調(diào)整的越小,屏幕顯示的內(nèi)容就越多。 在系統(tǒng)中都會(huì)有定義一個(gè)默認(rèn)的屏幕密度 設(shè)置中顯示大小相關(guān)內(nèi)容 源碼:/packages/apps/Settings/res/xml/display_settings.xml 源碼:/packages/apps/Settings/src/com/android/settings/display/ScreenZoomSettings.java 密度縮

    2024年02月09日
    瀏覽(93)
  • Android 12 修改系統(tǒng)音量默認(rèn)初始值

    1.需求:Android 系統(tǒng)出廠默認(rèn)的音量值過小,需要把音量默認(rèn)初始值改成音量的最大值. 2.涉及核心代碼: 3.系統(tǒng)音量默認(rèn)初始值在AudioSystem.java中定義,代碼如下: 3.系統(tǒng)音量最大值和最小值定義在AudioService.java 中,代碼如下: ------------------------------------------------------------修改方案一-

    2024年02月10日
    瀏覽(18)
  • Android12.0首次開機(jī)默認(rèn)授予app運(yùn)行時(shí)權(quán)限(去掉運(yùn)行時(shí)授權(quán)彈窗)第二種方法

    ? 在12.0的系統(tǒng)產(chǎn)品開發(fā)中,在6.0以后對(duì)于權(quán)限的申請(qǐng),都需要?jiǎng)討B(tài)申請(qǐng),所以會(huì)在系統(tǒng)首次啟動(dòng)后,在app的首次運(yùn)行時(shí),會(huì)彈出授權(quán)窗口,會(huì)讓用戶手動(dòng)授予app運(yùn)行時(shí)權(quán)限,在由于系統(tǒng)產(chǎn)品開發(fā)需要要求默認(rèn)授予app運(yùn)行時(shí)權(quán)限,不需要用戶默認(rèn)授予運(yùn)行時(shí)彈窗,所以需要在首

    2024年02月09日
    瀏覽(132)
  • Android8.1 MTK平臺(tái) 修改藍(lán)牙默認(rèn)名稱

    的默認(rèn)藍(lán)牙名稱為 Android Bluedroid 通過搜索你會(huì)找到如下文件 device/generic/common/bluetooth/bdroid_buildcfg.h 如果單一情況你修改此處即可,但如果多臺(tái)燒錄此 room 的設(shè)備同時(shí)打開藍(lán)牙,你搜索到的藍(lán)牙名稱都為 BTM_DEF_LOCAL_NAME 對(duì)應(yīng)的值 為了避免此種情況,我們采用另一種修改方式 將

    2024年04月13日
    瀏覽(24)
  • Android 如何修改按鈕默認(rèn)的討厭的藍(lán)紫色

    Android 如何修改按鈕默認(rèn)的討厭的藍(lán)紫色

    1.在設(shè)置好按鈕背景時(shí),發(fā)現(xiàn)鈕顏色始終沒有改變。 ? 2.原來是默認(rèn)主題themes的問題,在這里修改主題即可。 3.找到(res)-(values)-(themes)-(themes.xml),雙擊打開themes.xml文件。 ?4.修改parent內(nèi)容為: Theme.MaterialComponents.DayNight.Bridge ?5.修改主題樣式后,就可以修改按鈕背景

    2024年02月11日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包